模块化:
是一种将复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式。
服务器端模块的规范
CommonJS
引入:require
导出:module.exports
是服务器端模块的规范,Node.js采用了这个规范。同步加载模块,只有加载完成才能执行后面的操作。
浏览器端的模块化加载
AMD
引入:require
导出:exports
Asynchronous Module Definition,即异步模块定义。异步加载模块
AMD 是 RequireJS 在推广过程中对模块定义的规范化产出
//通过数组引入依赖(['./a','./b']),回调函数通过形参传入依赖(a,b)
define(['./a','./b'], function (a, b)
//定义模块的时候就要声明其依赖的模块
a.test();
b.test();
});
CMD
引入:require
导出:exports
Common Module Definition,即通用模块定义。异步加载模块
CMD是SeaJS 在推广过程中对模块定义的规范化产出
define(function (requie, exports, module) {
//依赖可以就近书写,可以在用到某个模块的时候再去require——按需加载
var a = require('./a');
a.test();
...
//软依赖
if (status) {
var b = requie('./b');
b.test();
}
});
ES6
引入:import
导出:export