最近被調到一個新的項目組,做web開發,是一個要上線的產品。MVC架構,對前端要求比較高,對於我這樣一個三腳貓功夫的js小鳥來說確實是一個挑戰。
廢話少說,直插主題。項目需要用到seajs,遂學之…
一、seajs是什么
一個適用於 Web 瀏覽器端的模塊加載器。只是實現JavaScript的模塊化及按模塊加載,與jquery不同。
二、特點
(1)一個模塊一個文件
(2)使用define()定義模塊
(3)使用use異步加載模塊
經常使用的 API 只有
define
,exports
,require
,require.async
這四個。define
define(factory)
factory可以是對象、字符串、函數。詳細講解請鏈https://github.com/seajs/seajs/issues/242
這里我只介紹factory是函數的情況。
define(function(require, exports, module) {//require
、exports
和module
這三個參數是默認傳入的,必須是這三個單詞,不能更改。 // The module code goes here });
a.require
是一個方法,用來獲取其他模塊提供的接口。如:var TabPanel = require("./TabPanel");而TabPanel 可以看出是文件TabPanel.js的一個對象。可以通過這個對象獲取該對象中共享的函數或者變量。b.exports是一個對象,用來向外提供模塊接口。通過他可以把模塊內的方法等共享出去。如:define(function(require, exports) { // snip... exports.foo = 'bar'; exports.doSomething = function() {}; });c.module
是一個對象,上面存儲了與當前模塊相關聯的一些屬性和方法。他有自己的屬性和方法如:module.id,module.uri,module.parent等
路徑問題:/*
* ./相對於當前目錄
* ../相對於上一個目錄
* /相對於根目錄
*/