該頁面列舉了 Sea.js 的常用 API。只要掌握這些用法,就可以嫻熟地進行模塊化開發(fā)。
用來對 Sea.js 進行配置。
seajs.config({ // 設置路徑,方便跨目錄調用
paths: {
'arale': 'https://a.alipayobjects.com/arale',
'jquery': 'https://a.alipayobjects.com/jquery'
}, // 設置別名,方便調用
alias: {
'class': 'arale/class/1.0.0/class',
'jquery': 'jquery/jquery/1.10.1/jquery'
}
});
更多配置項請參考:#262
用來在頁面中加載一個或多個模塊。
// 加載一個模塊seajs.use('./a');// 加載一個模塊,在加載完成時,執(zhí)行回調seajs.use('./a', function(a) {
a.doSomething();
});// 加載多個模塊,在加載完成時,執(zhí)行回調seajs.use(['./a', './b'], function(a, b) {
a.doSomething();
b.doSomething();
});
更多用法請參考:#260
用來定義模塊。Sea.js 推崇一個模塊一個文件,遵循統(tǒng)一的寫法:
define(function(require, exports, module) { // 模塊代碼});
也可以手動指定模塊 id 和依賴,詳情請參考:#242require
, exports
和 module
三個參數可酌情省略,具體用法如下。
require
用來獲取指定模塊的接口。
define(function(require) { // 獲取模塊 a 的接口
var a = require('./a'); // 調用模塊 a 的方法
a.doSomething();
});
注意,require
只接受字符串直接量作為參數,詳細約定請閱讀:#259
用來在模塊內部異步加載一個或多個模塊。
define(function(require) { // 異步加載一個模塊,在加載完成時,執(zhí)行回調
require.async('./b', function(b) {
b.doSomething();
}); // 異步加載多個模塊,在加載完成時,執(zhí)行回調
require.async(['./c', './d'], function(c, d) {
c.doSomething();
d.doSomething();
});
});
詳細說明請參考:#242
用來在模塊內部對外提供接口。
define(function(require, exports) { // 對外提供 foo 屬性
exports.foo = 'bar'; // 對外提供 doSomething 方法
exports.doSomething = function() {};
});
詳細說明請參考:#242
與 exports
類似,用來在模塊內部對外提供接口。
define(function(require, exports, module) { // 對外提供接口
module.exports = {
name: 'a', doSomething: function() {};
};
});
module.exports
與 exports
的區(qū)別,以及詳細說明請參考:#242
以上 7 個接口是最常用的,要牢記于心。
這里提供一個不錯的社區(qū)貢獻的 API 文檔:http://yslove.net/seajs/
更多建議: