Amd,Cmd, Commonjs, ES6 import/export的異同點

Amd,Cmd, Commonjs, ES6 import/export等均是模塊化方案api

一、Commonjs使用在Nodejs上,加載模塊是同步的。框架

二、Amdrequirejs在推廣過程當中對模塊定義的規範化產出,異步模塊定義,requirejs是對這個概念的實現,比如JavaScript語言是對ECMAScript規範的實現。異步

三、Cmdseajs在推廣過程當中對模塊定義的規範化產出,是一個同步模塊定義,seajs是cmd概念的一個實現,seajs是淘寶團隊提供的一個模塊開發的js框架。模塊化

四、ES6 引進import/export進行模塊化requirejs

CMD和AMD的區別: 
1.對於依賴的模塊AMD是提早執行,CMD是延遲執行。不過RequireJS從2.0開始,也改爲能夠延遲執行(根據寫法不一樣,處理方式不經過)。 
2.CMD推崇依賴就近,AMD推崇依賴前置。 
//AMD 
define(['./c','./d'], function (c, d) { 
    //依賴一開始就寫好 
    c.test(); 
    d.test(); 
}); 
//CMD 
define(function (requie, exports, module) { 
    //依賴能夠就近書寫 
    var a = require('./c'); 
    c.test(); 
    ... 
    //軟依賴 
    if (status) { 
        var d = requie('./d'); 
        d.test(); 
    } 
}); 
3.AMD的api默認是一個當多個用,CMD嚴格的區分推崇職責單一。
例如:AMD裏require分全局的和局部的。CMD裏面沒有全局的 require,提供 seajs.use()來實現模塊系統的加載啓動。CMD裏每一個API都簡單純粹。 ui

相關文章
相關標籤/搜索