一、AMD是RequireJs在推廣過程中對模塊定義的規(guī)范化產(chǎn)出。
特點(diǎn)是:依賴前置,異步模塊定義
define(['package/lib'],function(lib){
function foo(){
lib.log("hello world");
};
return {
foo:foo
};
})
二、CMD是SeaJs在推廣過程中對模塊定義的規(guī)范化產(chǎn)出。
特點(diǎn)是:淘寶團(tuán)隊提供,依賴就近,同步概念即用即加載模塊
//所有模塊通過defined來定義
define(function(require,export,module){
//通過require引入依賴
var $=require('jqurey');
var spinning=require('./spinning');
})
三、 CommonJS就是一個JavaScript模塊化的規(guī)范,是用在服務(wù)器端的node的模塊規(guī)范,前端的webpack也是對CommonJS原生支持的
exports.area=function(r){
return Math.PI*r*r;
}
exports.circumference=function(r){
return 2*Math.PI*r;
}
四、ES6特性export/import
ES6 在語言標(biāo)準(zhǔn)的層面上,實(shí)現(xiàn)了模塊功能,而且非常簡單,ES6到來,完全可以取代 CommonJS 和AMD規(guī)范,成為瀏覽器和服務(wù)器通用的模塊解決方案。由vue,Angular React這些mvvm 模式的框架發(fā)展,讓前端的編程變得模塊化,組件化