什麼是 seaJS ?
和requireJS相似的,seaJS 也是用JavaScript編寫的JS框架,主要功能是可以按不同的先後依賴關係對JavaScript 等文件的進行加載工作,可簡單理解為JS文件的加載器,它非常適合在瀏覽器中使用,它可以確保所依賴的JS文件加載完成之後再加載當前的JS文件,這在大量使用JS文件的項目中可確保各個JS文件的先後加載順序,確保避免了先前因某些原因某個檔案載入慢而導致其它載入快的檔案需要依賴其某些功能而出現某函數或某變數找不到的問題,這點非常有用,也是seaJS (遵守CMD) 的主要價值所在吧;但和requireJS (遵守AMD規範)有所區別。
快速簡單知識點:
#1、seajs.config({...}); //用來對Sea.js 進行配置。
2、seajs.use(['a','b'],function(a,b){...}); //用來在頁面中載入一個或多個模組。
3、define(function(require, exports, module){...}); //用來定義模組。 Sea.js 推崇一個模組一個文件,遵循統一的寫法:
4、require(function(require){var a = require("xModule"); ... }); //require 用來取得指定模組的介面。
5、require.async, //用來在模組內部非同步載入一個或多個模組。例如:
define(function(require){ require.async(['aModule','bModule'],function(a,b){ // 异步加载多个模块,在加载完成时,执行回调 a.func(); b.func(); }) });
6、exports, //用來在模組內部對外提供介面。例如:
define(function(require, exports){ exports.varName01 = 'varValue'; // 对外提供 varName01 属性 exports.funName01 = function(p1,p2){ // 对外提供 funName01 方法 .... } });
7、module.exports, 與 exports 類似,用來在模組內部外部提供介面。例如:
define(function(require, exports, module) { module.exports = { // 对外提供接口 name: 'a', doSomething: function() {...}; }; });
以上 7 個介面是最常用的,要牢記於心。
好了,簡單介紹就到這裡。下面看一個實際範例:
這個範例的設計要求是hellowMain.js 檔案依賴hellow.js, jQuery作為備用載入到專案中,只有等依賴檔案載入完了,才進行業務的JS程式碼初始化工作;
首先看範例文件目錄結構:
//file of folder structure
//---------------- -------------------------------------
//seaJS對專案的目錄一般格式如下,如userExample01下的結構
userExample01
|-----sea-modules
|
# |-----app卷---hellow | |---*.js/*.css#//-------------------------------- --------------------------------以上是seajs是什麼文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!