CMD與AMD(SeaJs與RequireJs代表)

介紹:

*SeaJs遵循CMD規范為通用模塊規范,RequireJs遵循AMD規范為異步模塊規范。

區別:

1.CMD是提前執行,AMD是延遲執行。
注:RequireJs從2.0開始 支持延遲執行。
2.CMD依賴就近(as lazy as possible),AMD依賴前置。

3.代碼差別。
// CMD

    define(function(require, exports, module) {
    var a = require('./a')
    a.doSomething()
    // 此處略去 100 行
    var b = require('./b') // 依賴可以就近書寫
    b.doSomething()
    // ... 
    })

// AMD 默認推薦的是

    define(['./a', './b'], function(a, b) { // 依賴必須一開始就寫好
    a.doSomething()
    // 此處略去 100 行
    b.doSomething()
    ...
    }) 

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容