Amd,Cmd, Commonjs, ES6 import/export的异同点

Amd,Cmd, Commonjs, ES6 import/export等均是模块化方案api

一、Commonjs使用在Nodejs上,加载模块是同步的。框架

二、Amdrequirejs在推广过程当中对模块定义的规范化产出,异步模块定义,requirejs是对这个概念的实现,比如JavaScript语言是对ECMAScript规范的实现。异步

三、Cmdseajs在推广过程当中对模块定义的规范化产出,是一个同步模块定义,seajs是cmd概念的一个实现,seajs是淘宝团队提供的一个模块开发的js框架。模块化

四、ES6 引进import/export进行模块化requirejs

CMD和AMD的区别: 
1.对于依赖的模块AMD是提早执行,CMD是延迟执行。不过RequireJS从2.0开始,也改为能够延迟执行(根据写法不一样,处理方式不经过)。 
2.CMD推崇依赖就近,AMD推崇依赖前置。 
//AMD 
define(['./c','./d'], function (c, d) { 
    //依赖一开始就写好 
    c.test(); 
    d.test(); 
}); 
//CMD 
define(function (requie, exports, module) { 
    //依赖能够就近书写 
    var a = require('./c'); 
    c.test(); 
    ... 
    //软依赖 
    if (status) { 
        var d = requie('./d'); 
        d.test(); 
    } 
}); 
3.AMD的api默认是一个当多个用,CMD严格的区分推崇职责单一。
例如:AMD里require分全局的和局部的。CMD里面没有全局的 require,提供 seajs.use()来实现模块系统的加载启动。CMD里每一个API都简单纯粹。 ui

相关文章
相关标签/搜索