AMD CMD 二者的區別

AMD 是 RequireJS 在推廣過程中對模塊定義的規範化產出。
CMD 是 SeaJS 在推廣過程中對模塊定義的規範化產出。
類似的還有 CommonJS Modules/2.0 規範,是 BravoJS 在推廣過程中對模塊定義的規範化產出。
還有不少⋯⋯

這些規範的目的都是爲了 JavaScript 的模塊化開發,特別是在瀏覽器端的。
目前這些規範的實現都能達成,瀏覽器端模塊化開發的目的。
區別:

  1. AMD在做依賴開發時,提倡的是依賴前置 ,而CMD則是延遲執行。(從RequireJS2.0開始,也改成可以延遲執行。根據寫法不同,處理方式不同)
  2. CMD提倡依賴就近原則,而AMD提倡依賴前置
在CMD中 一個依賴項可以在代碼內聲明,而在AMD中必須在代碼開始時首先聲明

雖然 AMD 也支持 CMD 的寫法,同時還支持將 require 作爲依賴項傳遞,但 RequireJS 的作者默認是最喜歡上面的寫法,也是官方文檔裏默認的模塊定義寫法。

AMD API 默認是一個當多個用, CMD API 嚴格區分,推崇職責單一。比如 AMD裏,require分全局 require和局部 require,都叫 require。CMD 裏,沒有全局 require,而是根據模塊系統的完備性,提供 seajs.use來實現模塊系統的加載啓動。 CMD 裏,每個 API 都簡單純粹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章