当 SeaJS 的模块定义规范(define)准备就绪后,开发者便可以源源不断地产出模块。然而,关键问题在于:模块创建得再多,也需要在页面中真正运行起来。SeaJS 提供了一种极其简洁的方式来初始化模块系统:
seajs.use 充当模块加载器的角色,负责在页面中加载并执行模块。只需调用 use 方法,即可加载任意模块。
基本语法如下:
seajs.use(id, callback?)
最简单的用法是仅传入模块 ID,无需任何额外操作:
seajs.use('./main');
更常见的场景是在加载模块后立即执行其内部方法。通过 callback 回调函数,可以接收模块的导出对象:
seajs.use('./main', function(main) {
main.init();
});
seajs.use 同样支持一次加载多个模块,各模块的导出对象会按顺序传递给回调函数:
seajs.use(['./a', './b'], function(a, b) {
a.init();
b.init();
});
callback 参数并非强制。当仅需加载单个模块且无需回调时,可以利用 data-main 属性简化 script 标签的书写:
以上代码与下面写法完全等价:
此外,SeaJS 还提供了 data-config 属性,用于指定需要预加载的配置文件:
该 data-config 属性等效于在代码中手动执行:
seajs.config({
preload: ['path/to/config']
});
路径解析规则与 seajs.use 一致,此处不再赘述。
在实际项目中,常见的组合用法是同时加载配置文件并启动主模块:
此处 main 为模块名称,main.banner_focus 是模块内部定义的函数,可直接传入参数调用。

总结:seajs.use 是 SeaJS 模块加载的核心入口,通过灵活搭配 data-main、data-config 及回调函数,能够满足绝大多数页面模块加载需求。
