提供简单、极致的模块化开发体验。
alias:
别名配置,配置后可在模块中使用require调用 require(’jqurey’);
定义alias–>seajs.config({alias:{‘jquery’ : ‘jquery/jquery/1.10.1/jquery’}})
调用jQuery–>define(function(require, exports, module){//引用jq var $ = require(‘jquery’)});
paths:
设置路径,方便跨目录调用。通过灵活的设置path可以再不影响base的情况下制定到某个目录
定义paths–>seajs.config({paths:{‘gallery’: ‘https://a.alipayojects.com/gallery'},{'alias':'gallery/underscore'}})
调用 define(function(require, exporst, module){var _ = require(‘underscore’)})
vars:
变量配置。有些场景下,模块路径在运行时才能确定,这时候可以用vars变量来配置。在模块中用{key}来表示变量。
定义vars–> seajs.config({vars:{‘local’:’zh-cn’}})
调用 define(function(require, exports, module){var lang = require(‘./i18n/{local}.js’)})
function:
用来在页面中加载一个或多个模块。
加载一个模块 seajs.use(‘./a’);
加载一个模块,在加载完成时,执行回调 seajs.use(‘./a’, function(a){a.dosomething()})
加载多个模块,在加载完成时,执行回调seajs.use([‘./a’,’./b’],function(a,b){a.dosomething();b.dosomething})
注意:seajs.use与DOM ready事件没有任何联系。如果某些操作要确保在DOM ready后执行,需要使用jquery等类库来保证
比如:seajs.use([‘jquery’, ‘./main’], function($, main){$.ready(function(){main.init()})})
seajs.data可以查看seajs所有配置以及一些内部变量

关于路径
seajs除了相对与顶级标识之外,还可以使用普通路径来加载模块。就到当前页面的脚本分析
//sea.js的路径,即 base 路径,相对于当前页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">
//配置Seajs
seajs.config({
alias: {
//顶级标识,基于 base 路径
'actjs': 'actjs/core/0.0.7/core.js',
// => http://
'position': 'actjs/util/0.0.2/position.js'
}
});

seajs.config({
alias: {
//普通路径,相对于当前页面
'affix': '../../actjs/assets/widget/src/widget-affix.js',

//相对标识,相对于当前页面
'init': './src/init.js'
}
});
</script>

开始的时候会觉得Seajs的路径有点不习惯,由其是Base路径。切记Base路径就是sea.js的那个文件的上级路径,然后所有顶级标识,相对标识都是相对于这个Base来调整。

摘自:http://yslove.net/seajs/#base