一、AMD是RequireJs在推广过程中对模块定义的规范化产出。
特点是:依赖前置,异步模块定义
define(['package/lib'],function(lib){
function foo(){
lib.log("hello world");
};
return {
foo:foo
};
})
二、CMD是SeaJs在推广过程中对模块定义的规范化产出。
特点是:淘宝团队提供,依赖就近,同步概念即用即加载模块
//所有模块通过defined来定义
define(function(require,export,module){
//通过require引入依赖
var $=require('jqurey');
var spinning=require('./spinning');
})
三、 CommonJS就是一个JavaScript模块化的规范,是用在服务器端的node的模块规范,前端的webpack也是对CommonJS原生支持的
exports.area=function(r){
return Math.PI*r*r;
}
exports.circumference=function(r){
return 2*Math.PI*r;
}
四、ES6特性export/import
ES6 在语言标准的层面上,实现了模块功能,而且非常简单,ES6到来,完全可以取代 CommonJS 和AMD规范,成为浏览器和服务器通用的模块解决方案。由vue,Angular React这些mvvm 模式的框架发展,让前端的编程变得模块化,组件化