requirejs与seajs

AMD 是 RequireJS 在推广过程当中对模块定义的规范化产出。
CMD 是 SeaJS 在推广过程当中对模块定义的规范化产出。 javascript

对于依赖的模块,AMD 是提早执行,CMD 是延迟执行java

// CMD  
define(function(require, exports, module) {  
var a = require('./a')  
a.doSomething()  
// 此处略去 100 行  
var b = require('./b') // 依赖能够就近书写  
b.doSomething()  
// ...   
})  
  
// AMD 默认推荐的是  
define(['./a', './b'], function(a, b) { // 依赖必须一开始就写好  
a.doSomething()  
// 此处略去 100 行  
b.doSomething()  
...  
}) 

写法对比:jquery

配置文件bootstrap

require.config({
    baseUrl:'/js',  //根路径
    path:{
        'jquery':'./query.js',
        'bootstrap':'./bootstrap',
        'backone':'./backone',
        'modernizr':',.modernizr'
    },
    shim:{
        'modernizr':{
            exports:'modernizr'  //不支持amd
        },
        'bootstrap':['jquery']  //依赖
    },
    map:{
        '*':{
            'jquery':'./jquery1.2.4'    //默认版本
        },
        'jq2':{
            'jquery':'./jquery2.2.4'    //升级版本
        }
    },
    waitSecound:0,  //下载js等待时间默认7s,0为一直等待,不然报失败信息
})
seajs.config({
    //设置路径
 paths: { 'gallery': 'https://a.alipayobjects.com/gallery' }, // 设置别名,方便调用  alias: { 'underscore': 'gallery/underscore' }, debug:false, // 文件编码 charset: 'utf-8' });

模块定义:app

  //app.js   require
    define([],function(){
        var add = function(msg, callback) {
                        console.log(msg);
                        callback();
                      };
        return add;
    });
    //app.js   seajs
    define(function(require,exports,module){
        module.exports = {
            add : function(msg, callback) {
                console.log(msg);
                callback();
            }
        }
    });

使用模块:requirejs

  //requirejs
    define(['app'], function(app) {
        app.add("Hello World", function () {
            console.log("成功");
        });
    });
    //seajs
    seajs.use(['app'],function(app){
        app.add("Hello World", function () {
            console.log("成功");
        });
    })
相关文章
相关标签/搜索