为什么使用 Sea.js ?
Sea.js 追求简单、自然的代码书写和组织方式,具有以下核心特性:
简单友好的模块定义规范:Sea.js 遵循CMD规范,可以像Node.js一般书写模块代码。
自然直观的代码组织方式:依赖的自动加载、配置的简洁清晰,可以让我们更多地享受编码的乐趣。
Sea.js 还提供常用插件,非常有助于开发调试和性能优化,并具有丰富的可扩展接口。
兼容性
Sea.js 具备完善的测试用例,兼容所有主流浏览器:
Chrome 3+ ✔
Firefox 2+ ✔
Safari 3.2+ ✔
Opera 10+ ✔
IE 5.5+ ✔
Sea.js 可运行在 Mobile 端,包括 Hybrid 模式的 App 上。理论上,Sea.js 可以运行在任何浏览器引擎上。
下面简单的说一下我在实际项目中运用sea.js的两种方式
一:
假设有一个hello.html页面,在hello.html页尾,通过script引入sea.js后(sea.js可以去官网下载),有一段配置代码:
// seajs 的简单配置
seajs.config({
base:"../sea-modules/",
alias:{
"jquery":"jquery/jquery/1.10.1/jquery.js"
}
})
// 加载入口模块
seajs.use("main.js")
main.js的代码如下:
define(name,function(require,exports,module){
// 通过 require 引入依赖
var$=require('jquery');
var Spinning=require('./spinning');
// 通过 exports 对外提供接口
exports.doSomething=...
// 或者通过 module.exports 提供整个接口module.exports=...
});
二:
在html底部引入<script src='main.js'></script>(先要引入sea.js),或者直接将seajs.use()部分放在底部
main.js中的代码结构如下
seajs.use(name,function(name1){})//name是在你要引入的模块,
seajs中使用的name是在define中写入的为这个模块取得名字,一般建议写成相对地址的形式,方便通过相对地址查找代码。