RequireJS:运行页面特定模块的最佳方法?

wil*_*age 13 javascript modularity requirejs

例:

mysite.com/page1 取决于脚本 module1.js

mysite.com/page2 取决于脚本 module2.js

mysite.com/page3 取决于脚本 module3.js

有没有人有任何最佳实践只运行该特定页面所需的Javascript.在我开始使用RequireJS之前,我只使用一个Javascript文件并仅启动该页面所需的模块.像这样


在页面中 <head>:

var page = "pageTitle";
Run Code Online (Sandbox Code Playgroud)


在主JS文件中:

var myModules = {};

myModules.pageTitle = (function(){

    return {
          init: function(){
             alert('this module has been initiated');
          }
    }
})();


myModules[page].init();
Run Code Online (Sandbox Code Playgroud)


不确定这样的技术如何与RequireJS一起使用.会喜欢一些关于别人如何做这些的反馈和建议.

ber*_*ghe 6

我假设你的所有页面都有一个main.js文件?

无论如何,通常你会使用脚本标记的data-main属性,如API文档中所述,这意味着每页有一个主js文件.这样,您就可以摆脱页面中的文字javascript代码,并充分利用RequireJS优化步骤.

例:

将main.js文件开发为RequireJS模块:

define([<dependencies go here>], function(){

    return function(pageTitle){
        //do you page dependent logic here
    }
}
Run Code Online (Sandbox Code Playgroud)

在你的HTML中,你会有类似的东西:

<html>
<head>
<script src="require.js"></script>
<script>
    require(["main.js"], function(init){
        init("pageTitle");
    });
</script>
Run Code Online (Sandbox Code Playgroud)