我刚刚开始使用 Require.JS,并且不太清楚应该使用它的适当情况,以及在这些情况下使用它的正确方法。
以下是我目前使用 Require.JS 进行设置的方式。我有两个功能,functionA()
and functionB()
。这两个功能都需要一个附加功能,functionC()
才能正常工作。
我只想在必要时加载 function() ,使用当 function() 或 function() 将被调用时。所以我有以下文件:
函数.js
functionC(){
//do stuff
}
函数.js
functionA(){
define(['functionC'],function(){
//functionC() is loaded because it is listed as a dependency, so we can proceed
//do some functionA() stuff
});
}
函数.js
functionB(){
define(['functionC'],function(){
//functionC() is loaded because it is listed as a dependency, so we can proceed
//do some functionB() stuff
});
}
那么,这样的设置正确吗?如果我最终在同一页面上调用 functionA() 和 functionB() ,是否需要做额外的工作,因为它们都加载了 functionC.js 文件?如果是这样,那有问题吗?如果是这样,有没有办法对其进行设置,以便他们首先检查 functionC.js 是否已加载,并且仅在尚未加载时加载它?最后,这是 Require.JS 的适当使用吗?
define()
只能用于定义模块。对于上面的例子,一段代码应该动态加载,使用require()
更合适的是:
函数.js
functionA(){
require(['functionC'],function(functionC){
//use funcC in here to call functionC
});
}
一些注意事项:
-
require([])
是异步的,所以如果调用者functionA
期望该函数返回值,则可能会出现错误。最好是如果functionA
接受在以下情况下调用的回调functionA
其工作已完成。
- 上面的代码会调用
require()
每次致电functionA
;但是,在第一次调用后,加载不会受到惩罚functionC.js
,仅加载一次。第一次require()
被调用,它将加载functionC.js
,但其余时间,RequireJS 知道它已经加载,所以它会调用function(functionC){}
无需请求即可实现功能functionC.js
again.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)