Requirejs常用配置和應用

2021-07-15 23:36:51 字數 1410 閱讀 8305

requirejs、require方法衝突

如果載入了多個requirejs指令碼,每個requirejs會判斷是否瀏覽器已經實現了require和define方法。如果瀏覽器已經自帶require和define方法,或者之前已經有乙個requirejs指令碼執行,那麼這個requirejs就會立刻停止執行。所以,即使頁面上載入了多次requirejs指令碼也不會有什麼問題。

配置context

我把context叫做乙個命名空間,因為每乙個context都有乙個名字,這樣同名而功能不同的模組就可以放在不同的context中以防衝突。

如果開發人員沒有配置context,那麼,requirejs還會生成乙個預設的context,這個預設的context配置大致如下:

requirejs.config(,

bundles: {},

pkgs: {},

shim: {},

config: {}注意:在不指定context名稱的情況下,任何配置和呼叫都是針對預設context的修改和呼叫。

空間名稱 – context

如果requirejs初始化時自定義配置context,那麼預設建立的context的name 就是」_」。如果需要新增新的context,只需指定乙個新的contextname即可,比如下面這個呼叫就會建立乙個新的context:

requirejs();

同名的context只會有乙個,配置同名的context等於修改這個context的屬性。

載入超時 – waitseconds

每個context都配置了乙個載入超時的時間,某個模組如果沒有初始化,載入的時間又超過了這個時間,就會被認為載入失敗。

載入超時是針對整個context下的所有模組而言的,而不是單指某個模組,也就是說這個預設的7秒是指所有模組應該在7秒之內全部載入完成。7秒之後,如果有沒有被載入的模組,將丟擲error指示哪些模組沒有載入。(requirejs每隔50毫秒做一次判斷)。

基準url – baseurl

每個context的基準url預設值是」./」。

第乙個context的基準url

如果開發人員沒有指定context名稱,那麼這個第乙個context就是requirejs預設生成的context,否則就是開發人員自己定義的context。在不指定基準url的前提下,第乙個context的基準url設定比較特殊,除了標準的設定方法(參考後面的基準url標準設定方法),還可以使用以下兩種特殊方式設定:

全域性配置

忽略script元素的data-main

在瀏覽器中,有乙個選項叫skipdatamain,可以讓requirejs忽略script元素的data-main。在預設情況下,requirejs成功載入之後,會立馬查詢頁面上所有script元素,並且把最後乙個有data-main屬性的script元素的data-main最為主程式入口。

RequireJS 配置理解

requirejs 配置 1.首先載入requirejs檔案 script src data main js main script 其中main.js是入口檔案 2.編寫main 檔案 require.config shim require function main檔案配置的盡量是全域性性的配置...

requireJS常用用法

1 非同步載入檔案 2 模組化開發 乙個檔案即是乙個模組,減少全域性變數。1 define 定義模組 define modulename可選 依賴的模組 function 依賴的模組別名 2 require 載入模組 require 載入模組 function 載入模組別名 相對於html頁面 相對...

RequireJS和Backbone的整合

這兩個輕量級的庫合起來使用確實能夠方便的構建大型應用程式。requirejs填補了前端模組化開發的空缺,backbone採用mvc的分層結構很好的將程式各個部分解耦。backbone目前不支援amd 曾經支援過 那麼它只能作為普通的js檔案使用。它全域性的標示符是backbone,它還依賴於unde...