国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解RequireJs官方使用教程

2024-05-06 15:24:57
字體:
供稿:網(wǎng)友

§ 1.使用

§ 1.1 加載 JavaScript 文件

RequireJS的目標(biāo)是鼓勵代碼的模塊化,它使用了不同于傳統(tǒng)<script>標(biāo)簽的腳本加載步驟。可以用它來加速、優(yōu)化代碼,但其主要目的還是為了代碼的模塊化。

RequireJS以一個相對于baseUrl的地址來加載所有的代碼。 頁面頂層<script>標(biāo)簽含有一個特殊的屬性data-main,require.js使用它來啟動腳本加載過程,而baseUrl一般設(shè)置到與該屬性相一致的目錄。

baseUrl亦可通過RequireJS config手動設(shè)置。如果沒有顯式指定config及data-main,則默認(rèn)的baseUrl為包含RequireJS的那個HTML頁面的所屬目錄。

RequireJS默認(rèn)假定所有的依賴資源都是js腳本,因此無需在module ID上再加".js"后綴,RequireJS在進行module ID到path的解析時會自動補上后綴。你可以通過paths config設(shè)置一組腳本,這些有助于我們在使用腳本時碼更少的字。

有時候你想避開"baseUrl + paths"的解析過程,而是直接指定加載某一個目錄下的腳本。此時可以這樣做:如果一個module ID符合下述規(guī)則之一,其ID解析會避開常規(guī)的"baseUrl + paths"配置,而是直接將其加載為一個相對于當(dāng)前HTML文檔的腳本:

以 ".js" 結(jié)束.
以 "/" 開始.
包含 URL 協(xié)議, 如 "http:" or "https:".

一般來說,最好還是使用baseUrl及"paths" config去設(shè)置module ID。它會給你帶來額外的靈活性,如便于腳本的重命名、重定位等。 同時,為了避免凌亂的配置,最好不要使用多級嵌套的目錄層次來組織代碼,而是要么將所有的腳本都放置到baseUrl中,要么分置為項目庫/第三方庫的一個扁平結(jié)構(gòu),如下:

www/index.htmljs/app/sub.jslib/jquery.jscanvas.jsapp.js

index.html:

<script data-main="js/app.js" src="js/require.js"></script>

app.js:

requirejs.config({  //By default load any module IDs from js/lib  baseUrl: 'js/lib',  //except, if the module ID starts with "app",  //load it from the js/app directory. paths  //config is relative to the baseUrl, and  //never includes a ".js" extension since  //the paths config could be for a directory.  paths: {    app: '../app'  }});//Start the main app logic.requirejs(['jquery', 'canvas', 'app/sub'],function  ($, canvas, sub) {  //jQuery, canvas and the app/sub module are all  //loaded and can be used here now.});

注意在示例中,三方庫如jQuery沒有將版本號包含在他們的文件名中。我們建議將版本信息放置在單獨的文件中來進行跟蹤。使用諸如volo這類的工具,可以將package.json打上版本信息,并在磁盤上保持文件名為"jquery.js"。這有助于你保持配置的最小化,避免為每個庫版本設(shè)置一條path。例如,將"jquery"配置為"jquery-1.7.2"。

理想狀況下,每個加載的腳本都是通過define()來定義的一個模塊;但有些"瀏覽器全局變量注入"型的傳統(tǒng)/遺留庫并沒有使用define()來定義它們的依賴關(guān)系,你必須為此使用shim config來指明它們的依賴關(guān)系。 如果你沒有指明依賴關(guān)系,加載可能報錯。這是因為基于速度的原因,RequireJS會異步地以無序的形式加載這些庫。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 牙克石市| 互助| 突泉县| 虹口区| 雷州市| 衡东县| 滁州市| 囊谦县| 儋州市| 阿拉善盟| 边坝县| 睢宁县| 汾阳市| 永济市| 临汾市| 东港市| 新竹县| 探索| 蒲江县| 临朐县| 西安市| 高要市| 甘谷县| 东海县| 白玉县| 五莲县| 会泽县| 安塞县| 金寨县| 准格尔旗| 旅游| 惠水县| 丽江市| 桐城市| 青铜峡市| 眉山市| 大同县| 浦北县| 丘北县| 宁远县| 饶平县|