这里之所以转载官网文档,一个是因为自己在学习阶段,自己手动敲一遍印象会更深,一个是因为GitHub访问比较慢,所以放在自己的博客,以后看着方便点。
Sea.js 是一个模块加载器,模块加载器需要实现两个基本功能:
1.实现模块定义规范,这是模块系统的基础。
2.模块系统的启动与运行。
模块系统的启动
有了define等模块定义规范的实现,我们可以开发出很多模块。但光有一堆模块不管用,我们还得让它们能跑起来。seajs中模块的启动是通过seajs.use(id, callback?)实现的。
<script src="path/to/sea.js"></script> <script> seajs.use('./main'); </script>
通过 use 方法,可以在页面中加载任意模块:
// 加载模块 main,并在加载完成时,执行指定回调 seajs.use('./main', function(main) { main.init(); });
use 方法还可以一次加载多个模块:
// 并行加载模块 a 和模块 b,并在都加载完成时,执行指定回调 seajs.use(['./a', './b'], function(a, b) { a.init(); b.init(); });
callback 参数可选,省略时,表示无需回调。
sea.js 的引入
<script src="path/to/sea.js" id="seajsnode"></script>
seajs.use(['jquery', './main'], function($, main) { $(document).ready(function() { main.init(); }); });