模块化 相关知识:
- 在ES6还未被浏览器所支持的情况下,commonjs作为ES6中标准模块加载方案,在客服端中的支持情况并不好,现在在客服端中有2
种模块化的解决方案,CMD和AMD,他们的代表分别为seajs和requirejs(是一个JavaScript模块加载器)。 - commonjs的目标是制定一个js模块化的标准,它的目标制定一个可以同时在客服端和服务端运行的模块。这些模块拥有自己独立的作用域,也可以向顶层曝露出自己的api也就是module.exports。
异步模块定义规范(AMD) 制定了定义模块的规则,这样模块和模块的依赖可以被异步加载。这个规范只定义define函数。define([id],[dependencies],function);
通用模块(CMD) 是commonjs另外的一种模块加载方案,在require依赖的时候,可以通过同步的形式(require),也可以通过异步的形式(require.async) 这个规范本身偏向于commonjs的规范。他以一个文件就是一个模块和ES6中标准的commonjs规范类似。
define(factory)函数。factory:| Object || String || fun
define(’‘,fun(require,exports,module){
var a = require('./a');//同步加载模块;
require.async(['./c', './d'], function(c, d) {
c.doSomething();
d.doSomething();
module.exports = {// 模块暴露的出口
foo: 'bar',
doSomething: function() {}
};
});})// 异步加载多个模块,在加载完成时,执行回调