seajs 最常用 7 个方法
SeaJS
是一个模块加载器,模块加载器需要实现两个基本功能:
- 实现模块定义规范,这是模块系统的基础。
- 模块系统的启动与运行。
seajs.config
js
seajs.config({
// 设置路径,方便跨项目调用
paths: {
path1: "....",
path2: "....",
},
// 设置别名,方便调用
alias: {
class1: "...",
class2: "...",
},
});
seajs.use
用来在页面中加载一个或多个模块
js
// 加载一个模块
seajs.use("./a");
// 加载一个模块,在加载完成时,执行回调
seajs.use("./a", function (a) {
a.doSomething();
});
// 加载多个模块,在加载完成时,执行回调
seajs.use(["./a", "./b"], function (a, b) {
a.doSomething();
b.doSomething();
});
define
用来定义模块。
js
define(function (require, exports, module) {
// 模块代码
});
require
用来获取指定模块的接口
js
define(function (require) {
// 获取模块a的接口
var a = require("./a");
// 调用模块a的方法
a.doSomething();
});
require.async
用来在模块内部异步加载一个或多个模块
js
define(function (require) {
// 异步加载一个模块,在加载完成时执行回调
require.async("./b", function (b) {
b.doSomething();
});
// 异步加载多个模块,在加载完成时执行回调
require.async(["./c", "./d"], function (c, d) {
c.doSomething();
d.doSomething();
});
});
exports
用来在模块内部对外提供接口
js
define(function (require, exports) {
// 对外提供foo属性
exports.foo = "bar";
// 对外提供doSomething方法
exports.doSomething = function () {};
});
module.exports
用来在模块内部对外提供接口
js
define(function (require, exports, module) {
// 对外提供接口
module.exports = {
name: "a",
doSomething: function () {},
};
});