论AMD,CMD,CommonJs 和 ES6对比
AMD
AMD是RequireJS在推广的过程中对异步模块定义的规范化产出
RequireJS可以动态的异步加载我们项目中的文件 例:
define([‘package/lib’], function(lib){
function foo(){
lib.log(‘hello’);
return {
foo: foo
};
});
使用package加载lib库 通过一个lib的回调函数来使用lib库中的方法,最后通过return来返回。
CMD
CMD是SeaJS(淘宝团队提出)在推广的过程中对同步模块定义的规范化产出。
define(function(require,exports,module){
//通过require 引入依赖(依赖就近原则)
var $ = require(‘jquery’);
var Spinning = require(‘./spinning’);
}
可以体现出CMD的即用即返回的同步概念.
CommonJS
CommonJS规范-module.exports (浏览器并不支持,但是在node.js后端会使用,服务端推荐CommonJS规范,前端推荐使用AMD,CMD的规范)
export.area = function(v){
return Math.PI*v;
};
export.circumference = function(v){
return Math.PI/v;
};
除以上方法外,也可以通过module.exports匿名输出。
ES6
上面的AMD,CMD,CommoJs都是ES5里面的规范,下面的export/import是ES6里面的规范。通过export/import输入输出 例:
export default {
props:[“name”],
data(){
return{ }
},
methods:{
increment(){
this.$emit(“incre”);
import(‘./../until’)
},
decrement(){
this.$emit(“decre”);
}
}
}