摘要:模塊初始化時(shí),會(huì)調(diào)用且僅調(diào)用一次該工廠函數(shù)。用來(lái)向外提供模塊的除了給對(duì)象增加成員,還可以使用直接向外提供可簡(jiǎn)化為函數(shù)用來(lái)訪問(wèn)其他模塊提供的異步加載模塊,并在加載完成后執(zhí)行回調(diào)函數(shù)使用的內(nèi)部機(jī)制來(lái)解析并返回模塊路徑。手冊(cè)的模塊化插件
seajs是我剛?cè)腴T(mén)前端就接觸到的一個(gè)javaScript模塊加載框架。使用seajs后javaScript代碼的可讀性和清晰度有了很大的提升,插件的使用和組裝變的很方便。更加方便代碼的升級(jí)和維護(hù)。推薦使用插件比較多的項(xiàng)目使用?;蛘呤褂胷equirejs也比較流行。
ps:如果想知道RequireJS、SeaJS哪個(gè)好用的可以自行對(duì)比,或者查看
seajs 的簡(jiǎn)單上手首先先去官網(wǎng)下載最新版本。
下載后,假定把它放在js子目錄下面,就可以加載了。
加載seajs后我們還需要加載自己的js配置文件
seajs 的簡(jiǎn)單配置
//.sea-config.js seajs.config({ base: "../plug-js/", alias: { "jquery": "jquery/1.10.1/jquery.js" } })
簡(jiǎn)單使用
// 所有模塊都通過(guò)define來(lái)定義 define(function(require,exports,module){ // 通過(guò)require來(lái)引入jquery var $ = require("jquery"); console.log($); })seajs參數(shù) define
使用全局函數(shù)define來(lái)定義函數(shù)
define(id?,dependencies?,factory);
id: 當(dāng)前模塊的唯一標(biāo)識(shí)。該參數(shù)可選。如果沒(méi)有指定,默認(rèn)為模塊所在文件的訪問(wèn)路徑。如果指定的話,必須是頂級(jí)或絕對(duì)標(biāo)識(shí)。
dependencies: 當(dāng)前模塊所依賴(lài)的模塊,是一個(gè)由模塊標(biāo)識(shí)組成的數(shù)組。
factory: 模塊的工作函數(shù)。模塊初始化時(shí),會(huì)調(diào)用且僅調(diào)用一次該工廠函數(shù)。
define(function(require,exports,module){ //The module code goes here })
**注意:不推薦不要設(shè)定id和dependencies參數(shù)。
exportsexports 用來(lái)向外提供模塊的API
define(function(require,exports){ // snip exports.foo = "bar"; exports.doSomething = function(){}; })
除了給exports對(duì)象增加成員,還可以使用return直接向外提供API
define(function(require,exports){ // snip... return { foo : "bar", doSomething : function(){} } }) 可簡(jiǎn)化為: define({ foo : "bar", doSomething : function(){} })require
require函數(shù)用來(lái)訪問(wèn)其他模塊提供的API
define(function(require){ var a = require("./a"); a.doSomething(); })
require.async: 異步加載模塊,并在加載完成后執(zhí)行回調(diào)函數(shù)
require.resolv: 使用require()的內(nèi)部機(jī)制來(lái)解析并返回模塊路徑。該函數(shù)不會(huì)加載模塊,只返回解析后的路徑。
require.load: 該方法可用異步加載腳本,并在加載完成后,執(zhí)行指定的回調(diào)函數(shù)。
require.constructor: 給所有require參數(shù)對(duì)象添加一些公用屬性或方法。
modeule 參數(shù)存儲(chǔ)模塊的元信息
module.id: 當(dāng)前模塊的唯一標(biāo)識(shí)。
module.dependencies: 表示當(dāng)前模塊的依賴(lài)列表
module.exports: exports是某個(gè)類(lèi)的實(shí)例
define(function(require,exports,module){ console.log(module.exports === exports); // true module.exports = new SomeClass(); console.log(module.exports === exports); // false })
module.constructor: 給module參數(shù)對(duì)象添加一些公用屬性或方法。
api手冊(cè)
seajs的模塊化插件文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/78263.html
摘要:應(yīng)用日益復(fù)雜,模塊化已經(jīng)成為一個(gè)迫切需求。異步模塊加載機(jī)制。引用的資源列表太長(zhǎng),懶得回調(diào)函數(shù)中寫(xiě)一一對(duì)應(yīng)的相關(guān)參數(shù)假定這里引用的資源有數(shù)十個(gè),回調(diào)函數(shù)的參數(shù)必定非常多這就是傳說(shuō)中的 簡(jiǎn)述 緣起 模塊通常是指編程語(yǔ)言所提供的代碼組織機(jī)制,利用此機(jī)制可將程序拆解為獨(dú)立且通用的代碼單元。 模塊化主要是解決代碼分割、作用域隔離、模塊之間的依賴(lài)管理以及發(fā)布到生產(chǎn)環(huán)境時(shí)的自動(dòng)化打包與處理等多個(gè)方面...
摘要:模塊化編程首先,我想說(shuō)說(shuō)模塊化編程這個(gè)概念當(dāng)我不清楚這個(gè)概念的時(shí)候,其實(shí)說(shuō)什么模塊化編程多好多好都是懵逼的而我一直不覺(jué)得有多好,其實(shí)也是因?yàn)槲覐拈_(kāi)始寫(xiě),就一直都在模塊化編程啊我們寫(xiě)一個(gè)文件然后我們?cè)谖募幸肴缓笳{(diào)用方法哈哈這樣已經(jīng)是模塊化 模塊化編程 首先,我想說(shuō)說(shuō)模塊化編程這個(gè)概念當(dāng)我不清楚這個(gè)概念的時(shí)候,其實(shí)說(shuō)什么模塊化編程多好多好都是懵逼的而我一直不覺(jué)得有多好,其實(shí)也是因?yàn)槲覐?..
摘要:所有依賴(lài)這個(gè)模塊的語(yǔ)句,都定義在一個(gè)回調(diào)函數(shù)中,等到加載完成之后,這個(gè)回調(diào)函數(shù)才會(huì)運(yùn)行。也采用語(yǔ)句加載模塊,但是不同于,它要求兩個(gè)參數(shù)第一個(gè)參數(shù),是一個(gè)數(shù)組,里面的成員就是要加載的模塊第二個(gè)參數(shù),則是加載成功之后的回調(diào)函數(shù)。 本篇文章來(lái)自對(duì)文章《js模塊化編程之徹底弄懂CommonJS和AMD/CMD!》的總結(jié),大部分摘自文章原話,本人只是為了學(xué)習(xí)方便做的筆記,之后有新的體會(huì)會(huì)及時(shí)補(bǔ)充...
摘要:未構(gòu)建之前,全部分開(kāi)加載。的優(yōu)化,得再看下的示例,然后再寫(xiě)篇筆記記錄下來(lái)。 想摸透javascript模塊化編程是怎么一回事,在seajs和requirejs之間兜兜轉(zhuǎn)轉(zhuǎn),看了許多相關(guān)資料和文章,算是大致理清它們的異同,撇開(kāi)requirejs加載方式的另類(lèi)(其實(shí)目前我暫時(shí)還沒(méi)去感受),于寫(xiě)法,比較喜歡requirejs的寫(xiě)法,這個(gè)比較主觀,這也得益于阮一峰大大那篇Javascript模...
摘要:是對(duì)的規(guī)范的實(shí)現(xiàn),當(dāng)然和規(guī)范還是有點(diǎn)誤差的。,就是遵循他提出的規(guī)范。 1:Javascript模塊化編程(三):require.js的用法 http://www.ruanyifeng.com/blo...2:RequireJS 模塊的定義與加載 http://www.cnblogs.com/bzggoo...(加載的順序不定,但依賴(lài)的順序最終是正確的;因?yàn)闊o(wú)需創(chuàng)建全局變量,甚至可以做到...
閱讀 1712·2021-11-18 10:02
閱讀 2224·2021-11-15 11:38
閱讀 2676·2019-08-30 15:52
閱讀 2199·2019-08-29 14:04
閱讀 3239·2019-08-29 12:29
閱讀 2093·2019-08-26 11:44
閱讀 1002·2019-08-26 10:28
閱讀 840·2019-08-23 18:37