JavaScript的模塊化開發(fā)框架Sea.js上手指南
更新時間:2016年05月12日 15:52:30 作者:qiangck
Sea.js的目的是追求簡單的代碼書寫和組織方式,Sea.js并沒有過多功能而是主要對前端程序的部署結構作出約束,下面我們就來看一下JavaScript的模塊化開發(fā)框架Sea.js上手指南:
Sea.js所有源碼都存放在 GitHub 上:https://github.com/seajs/examples,目錄結構為:
examples/
|-- sea-modules 存放 seajs、jquery 等文件,這也是模塊的部署目錄
|-- static 存放各個項目的 js、css 文件
| |-- hello
| |-- lucky
| `-- todo
`-- app 存放 html 等文件
|-- hello.html
|-- lucky.html
`-- todo.html
引入seajs主文件
<script src="js/sea.js"></script>
<script type="text/javascript">
// seajs配置項
seajs.config({
//設置基本的JS路徑(引用外部文件的根目錄)
base:"./js",
//設置別名(方便后面引用使用)
alias:{
"jQuery":"jquery.js"
},
//路徑配置(跨目錄調用或者目錄比較深時使用)
paths: {
'jQuery': 'http://libs.baidu.com/jquery/2.0.0/'
},
//設置文件編碼
charset:"utf-8",
//預加載文件
preload:['jQuery']
});
// 引用主入口文件
seajs.use(['main','jQuery'],function(e,$){
//回調函數
alert("全部加載完成");
});
</script>
seajs主入口文件(main)
define(function(require, exports, module) {
// 主入口文件引入其他文件依賴
//var testReQ = require('index');
var testReQ = require.async('index',function(){
//異步加載回調
alert("我是異步加載的index的回調函數");
});
// 運行index釋放的接口方法
// testReQ.testInit();
// 運行index釋放的接口方法(module)
testReQ.textFun();
});
seajs依賴文件(index)
define(function(require, exports, module) {
// 對外釋放接口
exports.testInit = function(){
alert("我是一個接口");
};
// 如果需要釋放大量接口,可以使用module
var testObj = {
name:"qiangck",
sex:"man",
textFun:function(){
alert("我是一個使用module.exports的對象方法");
}
}
// module.exports接收obj對象
module.exports = testObj;
});
文件的加載順序

下面我們從 hello.html 入手,來瞧瞧使用 Sea.js 如何組織代碼。
在頁面中加載模塊
在 hello.html 頁尾,通過 script 引入 sea.js 后,有一段配置代碼:
// seajs 的簡單配置
seajs.config({
base: "../sea-modules/",
alias: {
"jquery": "jquery/jquery/1.10.1/jquery.js"
}
})
// 加載入口模塊
seajs.use("../static/hello/src/main")
sea.js 在下載完成后,會自動加載入口模塊。頁面中的代碼就這么簡單。
模塊代碼
這個小游戲有兩個模塊 spinning.js 和 main.js,遵循統(tǒng)一的寫法:
// 所有模塊都通過 define 來定義
define(function(require, exports, module) {
// 通過 require 引入依賴
var $ = require('jquery');
var Spinning = require('./spinning');
// 通過 exports 對外提供接口
exports.doSomething = ...
// 或者通過 module.exports 提供整個接口
module.exports = ...
});
上面就是 Sea.js 推薦的 CMD 模塊書寫格式。如果你有使用過 Node.js,一切都很自然。
您可能感興趣的文章:
- 在Html中使用Requirejs進行模塊化開發(fā)實例詳解
- 使用requirejs模塊化開發(fā)多頁面一個入口js的使用方式
- 詳解JavaScript模塊化開發(fā)
- Seajs 簡易文檔 提供簡單、極致的模塊化開發(fā)體驗
- JavaScript模塊化開發(fā)之SeaJS
- 了解Javascript的模塊化開發(fā)
- javascript 構建模塊化開發(fā)過程解析
- 深入探尋seajs的模塊化與加載方式
- seajs和requirejs模塊化簡單案例分析
- 基于RequireJS和JQuery的模塊化編程日常問題解析
- 基于RequireJS和JQuery的模塊化編程——常見問題全面解析
- JavaScript 模塊化開發(fā)實例詳解【seajs、requirejs庫使用】

