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加载。

浙公网安备 33010602011771号