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
關鍵字導入