AMD、CMD、CommonJS和ES6 Import的区别
四个都是引用js文件的方法,具体实现和使用方式不同
AMD
AMD是requireJS的语法
define("alpha", ["require", "exports", "beta"], function (require, exports, beta) {
exports.verb = function() {
return beta.verb();
//Or:
return require("beta").verb();
}
});
特点是依赖前置、提前执行
CMD
CMD是SeaJS的语法
define(function(require, exports) {
// 获取模块 a 的接口
var a = require('./a');
// 调用模块 a 的方法
a.doSomething();
});
特点是依赖就近、延迟执行
CommonJS
nodejs的语法
//引入使用require
const config = require('/path/to/file');
//导出有两种方法
module.exports = function() {...}
//或者
exports.get = myget
exports.post = mypost
ES6
es6的语法
// 命名导出写法1
export {get, post}
// 命名导出写法2
export const name = ‘123’
export function hh(){...}
//命名导出引入
import {get, post} from 'tools.js'
//默认导出,一个文件只能有一个export default
//写法1
export default function() {...}
//写法2
export default {
get: function() {},
set: function() {}
}
//默认导出引入
//写法1
import tool from 'tools.js'
tool()
//写法2
import tools from 'tools.js'
tools.get()