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

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

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

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

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

4、ES6 引进import/export进行模块化

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都简单纯粹。 

posted @ 2019-08-06 13:30  比诺  阅读(450)  评论(0编辑  收藏  举报