前端开发 AMD 和 CMD 的规范区别
AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMD
CMD 规范在这里:https://github.com/seajs/seajs/issues/242
RequireJS 遵循的是 AMD(异步模块定义)规范,
SeaJS 遵循的是 CMD (通用模块定义)规范
AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。
CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。
AMD 和 CMD 的规范区别:
1.AMD 是提前执行,CMD 是延迟执行
- CMD 推崇依赖就近,AMD 推崇依赖前置。
看代码:
// CMD
define(function(require, exports, module) {
var a = require(‘./a’)
a.doSomething()
// 省略代码
var b = require(‘./b’)
// 依赖就近原则
b.doSomething()
// …
})
// AMD 推荐
define([‘./a’, ‘./b’], function(a, b) {
// 依赖必须前面写好
a.doSomething()
// 省略代码
b.doSomething()
…
})
CommonJS Modules/2.0 规范,是 BravoJS 在推广过程中对模块定义的规范化产出。
参考:
SeaJS 和 RequireJS 的差异
- LABjs、RequireJS、Sea.js 哪个最好用?为什么?
- 从 RequireJS 到 Sea.js 系列:(1) (2) (3) (4) (5) (要翻墙)
- Sea.js 和 RequireJS 的异同(要翻墙)
- AMD 与 CMD 的区别
AMD 规范在这里: https://github.com/amdjs/amdjs-api/wiki/AMD
CMD 规范在这里: https://github.com/seajs/seajs/issues/242
CommonJS Modules/2.0 规范,是 BravoJS 在推广过程中对模块定义的规范化产出。
还没有评论,来说两句吧...