ES6以前,Javascript并无模块体系。可是实际开发中,为了更高效的开发,咱们须要模块化编程开发,也就产生了几类模块化标准。javascript
global
对象的属性module.exports
对象require
方法其原理是异步加载模块,模块的加载不影响其后面语句的运行。全部以来这个模块的语句都会添加进一个回调函数中,等到模块加载完成,回调函数就会执行。css
require([modlue], callback)
读取模块require.config
配置别名,使用栗子:java
//别名配置
requirejs.config({
paths: {
jquery: 'jquery.min' //能够省略.js
}
});
//引入模块,用变量$表示jquery模块
requirejs(['jquery'], function ($) {
$('body').css('background-color','red');
});
复制代码
define(id?, dependencies?, factory)
定义模块define('math',['jquery'], function ($) {//引入jQuery模块
return {
add: function(x,y){
return x + y;
}
};
});
复制代码
CMD和AMD解决的问题同样,不过是模块定义方式、模块加载的时机不一样node
seajs示例:jquery
// 定义模块 myModule.js
define(function(require, exports, module) {
var $ = require('jquery.js')
$('div').addClass('active');
exports.data = 1;
});
// 加载模块
seajs.use(['myModule.js'], function(my){
var star= my.data;
console.log(star); //1
});
复制代码
require
具体使用参考潜入理解ES6-模块化编程
export
关键字导出import
关键字导入