seaJS是一个遵循CMD规范的JS模块加载框架。html
1.下载git
github地址:https://github.com/seajs/seajsgithub
下载好后,在dist(distribution)文件夹下,有sea.js和sea-debug.js,sea.js是压缩过的放在生产环境的,sea-debug.js用于开发调试。并发
2.使用框架
文件目录以下,其中在x文件夹下放了x.js,y文件夹下放了y.js,其中y为入口模块,调用x模块。函数
main.html以下ui
x.js文件以下debug
y.js文件以下调试
3.解读htm
(1)seajs.use
至关于入口函数,调用y模块,成功后执行回调,返回y的暴露值。
另外,还能够经过data-main和data-config设置入口模块。
use 方法还能够一次加载多个模块:
// 并发加载模块 a 和模块 b,并在都加载完成时,执行指定回调
seajs.use(['./a', './b'], function(a, b) {
a.init();
b.init();
});
(2)define(function(require,exports,module){...})
定义模块的完整结构是define(id?,dependencies?,factory),可是通常不推荐写id和dependecies,而只写一个工厂函数。
具体可参考张鑫旭的技术博客:http://www.zhangxinxu.com/sp/seajs/docs/zh-cn/module-definition.html
在只写一个工厂函数的时候,也就成了下面的样子
define(function(require,exports,module){...})
其中require能够用来引用其余模块,exports和module能够将该模块的方法暴露出去。
3.其余
(1)seajs.config
(2)对外API的方法
1.带块区域只有一个对象时,默认返回该对象。
2.先写业务代码,return一个对象。
3.给exports添加属性和方法,可是不能直接给exports赋值
4.给module的exports赋值