本文罗列了seajs常用的api和代码示例,下面话不多说,来看看详细的介绍,有需要的朋友们可以参考借鉴。
一、seajs.config
alias
别名配置,配置之后可在模块中使用require调用 require('jquery');
seajs.config({ alias: { 'jquery': 'jquery/jquery/1.10.1/jquery' } });define(function(require, exports, module) { //引用jQuery模块 var $ = require('jquery');});
paths 设置路径,方便跨目录调用。通过灵活的设置path可以在不影响base的情况下指定到某个目录。
seajs.config({ //设置路径 paths: { 'gallery': 'https://a.alipayobjects.com/gallery' }, // 设置别名,方便调用 alias: { 'underscore': 'gallery/underscore' }});
vars
变量配置。有些场景下,模块路径在运行时才能确定,这时可以使用 vars 变量来配置。
vars 配置的是模块标识中的变量值,在模块标识中用 {key} 来表示变量。
seajs.config({ // 变量配置 vars: { 'locale': 'zh-cn' }});define(function(require, exports, module) { var lang = require('./i18n/{locale}.js'); //=> 加载的是 path/to/i18n/zh-cn.js});
map
该配置可对模块路径进行映射修改,可用于路径转换、在线调试等。
seajs.config({ map: [ [ '.js', '-debug.js' ] ]});define(function(require, exports, module) { var a = require('./a'); //=> 加载的是 path/to/a-debug.js});
preload
使用preload配置项,可以在普通模块加载前,提前加载并初始化好指定模块。
preload中的空字符串会被忽略掉。
// 在老浏览器中,提前加载好 ES5 和 json 模块seajs.config({ preload: [ Function.prototype.bind ? '' : 'es5-safe', this.JSON ? '' : 'json' ]});
注意:preload中的配置,需要等到 use 时才加载。比如:
seajs.config({ preload: 'a'});// 在加载 b 之前,会确保模块 a 已经加载并执行好seajs.use('./b');
debug
值为true时,加载器不会删除动态插入的 script 标签。插件也可以根据debug配置,来决策 log 等信息的输出。
base
Sea.js 在解析顶级标识时,会相对 base 路径来解析。
注意:一般请不要配置 base 路径,把 sea.js 放在合适的路径往往更简单一致。
charse
获取模块文件时,<script> 或 <link> 标签的charset属性。 默认是utf-8 charset还可以是一个函数:
seajs.config({ charset: function(url) { // xxx 目录下的文件用 gbk 编码加载 if (url.indexOf('http://example.com/js/xxx') === 0) { return 'gbk'; } // 其他文件用 utf-8 编码 return 'utf-8'; }});
新闻热点
疑难解答
图片精选