CommonJS、AMD、CMD区别

CommonJS

  属于同步模块化编程,是三者中最早出现的,Node.js就是运用了它,这种写法适用于服务端,如果在浏览器环境,容易出现由于加载依赖的模块阻塞后续程序的正常执行,出现卡死状态。

  加载模块:require('模块路径');

  导出模块:module.exports = {};

  

AMD

  其实AMD 是 RequireJS 在推广过程中对模块定义的规范化的产出,RequireJS 属于异步模块化编程。

  首先定义模块:1.define('模块标识符',[依赖模块路径],回调函数);

     

 

CMD

  以Sea.js为代表,它的依赖不是以数组的形式传递,而是以回调函数参数的形式传递,一共有三个参数,require,exports,module,具体如下图

  定义模块:define(function(require,exports,module){});

  加载模块:seajs.use(['依赖模块路径'],function(依赖模块名称){});

 

   

 

 总结:

  CommonJS和AMD的区别:

    1.前者为同步加载,适用于服务端,后者为异步加载,适用于浏览器环境。

    2.定义方式不同,AMD需要用define和require来定义模块,但CommonJS可以直接像书写普通函数表达式一样书写。

    3.导出方式不同,CommonJS用module.exports导出一个对象,AMD直接在回调函数中return一个对象即可。

  AMD和CMD的区别:

    1.AMD依赖前置,CMD就近依赖。(简单说CMD的依赖模块不再是以数组成员的方式作为参数进行传递,而是在回调函数中传入require,exports,module三个参数,然后按需加载依赖模块)。

    2.AMD用require加载,CMD用seajs.use加载。

posted @ 2019-08-30 20:50  米斯特亮  阅读(189)  评论(0)    收藏  举报