首頁  >  文章  >  web前端  >  seajs中模組依賴載入處理實例分析

seajs中模組依賴載入處理實例分析

小云云
小云云原創
2018-01-26 10:47:391258瀏覽

本文主要介紹了seajs中模組依賴的加載處理,結合實例形式分析了seajs模組依賴與加載的原理、相關注意事項與使用方法,需要的朋友可以參考下,希望能幫助到大家。

最近在做專案的時候發現一些關於模組依賴問題,特記錄下:

例如現有3個檔案:

/*init.js*/
define(function(require, exports, module){
 require('jquery');
 require('jquery.plugA');
})
/*jquery.plugA.js*/
define(function(require, exports, module){
 require('jquery');
 require('jquery.plugB');
 //code...
})
/*jquery.plugB.js*/
define(functioin(require, exports, module){
 require('jquery');
 //code...
})

例如執行init.js時, init.js、jquery.plugA.js、jquery.plugB.js都會依賴到jquery,那麼這種情況下seajs對jquery如何處理的呢?只執行一次?執行多次?還是其他方式?

這裡參考玉伯的回答:

我對模組呼叫的理解是,呼叫是指取得某個模組的介面。在SeaJS 裡,只有seajs.use, require.async, 和require 會產生模組調用,例如: var a = require('./a') 在執行require('./a') 時,會取得模組的接口,如果是第一次調用,會初始化模組a,以後再調用時,直接返回模組a 的接口; define 只是註冊模組信息,比如打包之後:define(id, deps, factory) 是註冊了一個模組到seajs .cache 中,define 類似:seajs.cache[id] = { id: id, dependencies: deps, factory: factory }

是純註冊資訊。

而require('./a') 時,才會執行seajs.cache['a'].factory, 執行後得到seajs.cache['a'].exports

相關推薦:

seajs中模組的解析規則詳解與模組使用總結_Seajs

#

以上是seajs中模組依賴載入處理實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn