AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法

2020-05-19 07:28:00易采站长站整理

// 简单的配置
require.config({
    // RequireJS 通过一个相对的路径 baseUrl来加载所有代码。baseUrl通常被设置成data-main属性指定脚本的同级目录。
    baseUrl: “./js”,
    // 第三方脚本模块的别名,jquery比libs/jquery-1.11.1.min.js简洁明了;
    paths: {
        “jquery”: “libs/jquery-1.11.1.min.js”
    }
});
// 开始使用jQuery 模块
require([“jquery”], function ($) {
    //你的代码
    //这里直接可以使用jquery的方法,比如:$( “#result” ).html( “Hello World!” );
});


Require.js中使用jQuery 插件


虽然jQuery的支持AMD的API, 这并不意味着jQuery插件也是和AMD兼容的。


一般的jQuery 插件格式:
(function ($) {
    $.fn.m​​yPlugin = function () {
        //你自己的插件代码
    };
})(jQuery);
不过我们稍微修改一下就可以使用Require.js加载一个jQuery插件:

;(function (factory) {
    if (typeof define === “function” && define.amd) {
        // AMD模式
        define([ “jquery” ], factory);
    } else {
        // 全局模式
        factory(jQuery);
    }
}(function ($) {
    $.fn.jqueryPlugin = function () {
        //插件代码
    };
}));


Require.js中使用jQuery UI组件


Require.js中使用jQuery UI组件也类似的,只要改造一下jQuery Widget Factory 代码就可以了,并且感觉jQuery UI的依赖关系加载就可以了。例如:

(function (widgetFactory) {
    if (typeof define === “function” && define.amd) {
        // AMD模式
        define(“jquery.ui.widget”, [“jquery”], function () {
            widgetFactory(window.jQuery);
        });
    } else {
        // 全局模式
        widgetFactory(window.jQuery);
    }
}
(function ($, undefined) {
    // jQuery Widget Factory 代码
}));