CommonJS、AMD、CMD区别

CommonJS编程

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

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

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

  

AMD模块化

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

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

     

 

CMD3d

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

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

  加载模块: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加载。

相关文章
相关标签/搜索