我正在构建一个复杂的网络应用程序,为了简单起见,我在各种文件中制作了各种模块(对象)。某些页面可能需要这些模块,而其他页面则不需要。
出于这个原因,我想避免为任何页面加载所有模块,从而增加无用请求的数量。
到目前为止,我是这样工作的:
- 我包括所有需要的库
- 之后,我
jQuery(function() {});
使用当前页面的具体 #ids 或 .classes 参数实例化这些库
一切正常,但由于我的应用程序变得非常简单,我想用 RequireJS 管理我的 JS。
这就是事情开始让我有点困惑的地方。
我知道我可以在需要时使用 加载我的模块require(['module1', 'module2', 'etc'], function (module1, module2, etc) {})
,但我怎么说:
“在此页面上,您加载这些模块,并使用这些 #id 和 .classes 实例化它们”
和
“在此其他页面上,您仅使用此#other-id 加载该模块”
?
例如,module1 将从 api 加载数据,并将它们列出到作为参数给出的特定表中:
// in page 1
var mod1 = new Module1($('#content>table');
mod1.init(); // will load the data from the api with the url located at <table data-api-url="http://....">
// in page 2
var mod1 = new Module1($('#content .items>table'); // The table where we want the data to be populated is not at the same position!
mod1.init();
这意味着,根据页面,我必须以不同的方式加载我的模块。这就是我不知道如何使用 RequireJs 的方式:/