seajs 使用指南
Sea.js 提供了一个全局方法——define,用来定义一个 CMD 模块。
1 2 3 4 5 | define(function(require, exports, module) { // 模块代码 // 使用require获取依赖模块的接口 // 使用exports或者module来暴露该模块的对外接口 }) |
定义好模块后,在页面引入 sea.js。为了让 sea.js 内部能快速获取到自身路径,推荐手动加上 id 属性。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <script src="http://path/to/seajs/1.2.0/sea.js" id="seajs"></script> <script> seajs.use('./hello') // 可以带 callback seajs.use('./hello', function(hello) { hello.api() }) // 也可同时(依次)加载多个模块 seajs.use(['./hello', './world'], function(hello, world) { hello.api() world.api() }) </script> |
自定义配置,简化代码:seajs.config(options)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | seajs.config({ // 别名配置 // 使用 alias,可以让文件的真实路径与调用标识分开,有利于统一维护 alias: { 'es5-safe': 'gallery/es5-safe/0.9.3/es5-safe', 'json': 'gallery/json/1.0.2/json', 'jquery': 'jquery/jquery/1.10.1/jquery' }, // 路径配置 // 当目录比较深,或需要跨目录调用模块时,可以使用 paths 来简化书写 paths: { 'gallery': 'https://a.alipayobjects.com/gallery' }, // 变量配置,模块路径在运行时才能确定 // vars 配置的是模块标识中的变量值,在模块标识中用 {key} 来表示变量 vars: { 'locale': 'zh-cn' }, // 映射配置 // 该配置可对模块路径进行映射修改,可用于路径转换、在线调试等 map: [ ['http://example.com/js/app/', 'http://localhost/js/app/'] ], // 预加载项 // 可以在普通模块加载前,提前加载并初始化好指定模块 preload: [ Function.prototype.bind ? '' : 'es5-safe', this.JSON ? '' : 'json' ], // 调试模式 debug: true, // Sea.js 的基础路径 base: 'http://example.com/path/to/base/', // 文件编码 charset: 'utf-8' }); |
注意:一般请不要配置 base 路径,把 sea.js 放在合适的路径往往更简单一致。