淺談AMD和CMD
阿新 • • 發佈:2019-02-18
AMD 是 RequireJS 在推廣過程中對模組定義的規範化產出。
CMD 是 SeaJS 在推廣過程中對模組定義的規範化產出。
這些規範的目的都是為了 JavaScript 的模組化開發,特別是在瀏覽器端的。
對於依賴的模組,AMD 是提前執行,CMD 是延遲執行
依賴方式
AMD 推崇依賴前置,CMD 推崇依賴就近
例:
// AMD 預設推薦
define([‘./a’, ‘./b’], function(a, b) { // 依賴必須一開始就寫好
a.doSomething()
……
……
b.doSomething()
…
})
// CMD 預設推薦
define(function(require, exports, module) {
var a = require(‘./a’)
a.doSomething()
……
……
var b = require(‘./b’) // 依賴可以就近書寫
b.doSomething()
…
})
PS: AMD 也支援 CMD 的寫法,同時也支援將 require 作為依賴項傳遞,但 RequireJS 的作者預設是推薦上面的寫法,也是官方文件裡預設的模組定義寫法。