欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

模块化——AMD、CMD、CommonJs

程序员文章站 2022-06-13 21:34:17
...

模块化是指将一个复杂问题,依照一种分类的思维把问题进行系统性的分解处理。使得系统成为“高内聚,低耦合”的模块组成,让管理,开发,维护变得“有理可循”

RequireJS 、Sea.js、CommonJs都是模块加载器 ,倡导模块化开发理念

AMD——Asynchronous Module Definition(异步模块定义)

  • RequireJS 遵循 AMD(异步模块定义)规范。

  • AMD推崇依赖前置 ,在解析和执行当前模块之前指明所有依赖模块

    define(['./a','./b'],function(a,b){
     a.doSomething()
     b.doSomething()
    }) 
  • 无需遍历整个函数体找到它的依赖,因此性能有所提升,缺点就是开发者必须显式得指明依赖,这会使得开发工作量变大。

  • <script>标签引入RequireJs


CMD——Common Module Definition(通用模块定义)

  • SeaJs 遵循 CMD 规范。

  • CMD推崇依赖就近 ,可以把依赖写进你的代码中的任意一行

    define(function(require, exports, module) {
    var a = require('./a')
    a.doSomething()
    var b = require('./b')
    b.doSomething()
    })
  • 代码在运行时,首先是不知道依赖的,需要遍历所有的require关键字,这是一种牺牲性能来换取更多开发便利的方法。

  • <script>标签引入SeaJs

CmmonJs

  • Node.js遵循CommonJs规范。
  • 因为nodeJs就是它的实现,所以使用node就行,也不用引入其他包

资料:

http://blog.csdn.net/jackwen110200/article/details/52105493

http://blog.chinaunix.net/uid-26672038-id-4112229.html

相关标签: 模块化