通过RequireJS为大型应用程序加载模块

时间:2014-12-05 15:35:46

标签: requirejs

我正在开展一个相当大的项目,我正在(慢慢地)找到requireJS的来龙去脉。我可以说我喜欢它(这个概念)并怀疑我是否会回到过去的方式。"也就是说,我想从一开始就养成良好的栖息地。

我有一个名为application.js

的主模块
'use strict';

/**
 * Primary application module.
 * 
 * @param {function} jquery | jQuery library. http://jquery.com/
 * @returns {object}
 * 
 */
define([
    'jquery'
], function (jquery) {
    var Application = {
        /**
         * Initialization method.
         * 
         * @returns {void}
         * 
         */
        initalize: function () {
            // Start doing stuff...

        }
    };

    return Application;
});

到目前为止一切顺利。 我'好奇的是,当我开始添加越来越多的模块时。让我们说在某些时候我有一个"联系我们"表单或其他模块,在启动时不一定需要加载,但需要在页面上提供" x"。

我会将它加载到初始依赖项列表中,如下所示:

'use strict';

/**
 * Primary application module.
 * 
 * @param {function} jquery | jQuery library. http://jquery.com/
 * @param {object} moduleone | ModuleOne
 * @returns {object}
 * 
 */
define([
    'jquery'
    'moduleone'
], function (jquery, ModuleOne) {
    var Application = {
        /**
         * Initialization method.
         * 
         * @returns {void}
         * 
         */
        initalize: function () {
            // Start doing stuff...

            if ($('#moduleOneThing').length) {
                 // Do stuff with ModuleOne...
            }
        }
    };

    return Application;
});

或者最好像这样设置另一个define / require块:

'使用严格的';

/**
 * Primary application module.
 * 
 * @param {function} jquery | jQuery library. http://jquery.com/
 * @param {object} moduleone | ModuleOne
 * @returns {object}
 * 
 */
define([
    'jquery'
], function (jquery) {
    var Application = {
        /**
         * Initialization method.
         * 
         * @returns {void}
         * 
         */
        initalize: function () {
            // Start doing stuff...

            if ($('#moduleOneThing').length) {
                 require(['moduleone'], function (ModuleOne) {
                     // Do stuff with Module One...
                 });
            }
        }
    };

    return Application;
});
或许,或许我对所有事情都有所了解。无论如何,我想学习"正确的"从一开始的方式,希望不必在路上打破坏习惯。这是一个非常简单的例子,但复杂性将迅速增长,我希望在未来几周内正确设置以避免一堆蒸汽垃圾。 谢谢你的时间!

0 个答案:

没有答案