require.js,我做得对吗?

时间:2014-05-30 09:32:26

标签: javascript requirejs

我是require.js的新手,发现文档很难理解。过了一会儿,我通过以下设置启动并运行了项目。

project
    |
    |--js
        |--vendor
            |--require.js
            |--modernizr.js
            |--jquery.js
        |--modules
            |--module1.js
            |--module2.js
        |--main.js
    |--index.html

的index.html:

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <script data-main="/js/main.js" src="/js/vendor/require.js"></script>
    </body>
</html>

main.js

define([
    "vendor/modernizr",
    "modules/module1",
    "modules/module2"
]);

模块/ module1.js

define(['vendor/jquery'], function () {
    // Some module code like
    $('#button').on('click', function(){});
});

如果我想在CSS的设置较少的情况下拥有一个导入文件(main.js),这是一个很好的设置吗?

1 个答案:

答案 0 :(得分:1)

此设置通常是正确的方向,只需稍作修改即可。

对于模块,您需要为模块的每个依赖项传入匹配数量的参数。在这种情况下,您可能希望将$分配给jQuery模块返回的内容,以便您可以在模块中实际使用$

define(['vendor/jquery'], function ($) {
    // Some module code like
    $('#button').on('click', function(){});
});

对于main.js,define()调用应该是require()调用,这样您就可以执行模块中的任何操作,而不是简单地将其注册为其他模块的模块执行:

require([
    "vendor/modernizr",
    "modules/module1",
    "modules/module2"
], function(Modernizr, module1, module2) {
   // do something with Modernizr, module1, module2
});