課程
/前端開(kāi)發(fā)
/JavaScript
/電商網(wǎng)站前端架構(gòu)
requirejs用法
2015-01-18
源自:電商網(wǎng)站前端架構(gòu) 2-4
正在回答
require.js的誕生是為了解決兩大問(wèn)題,第一實(shí)現(xiàn)js文件的異步加載,避免網(wǎng)頁(yè)失去響應(yīng),第二管理模塊之間的依賴性,便于代碼的編寫和維護(hù)。
使用require.js的第一步,是先去官方網(wǎng)站下載最新版本。
下載后,假定把它放在js子目錄下面,就可以加載了。
?
1
? ?
<script src="js/require.js"></script>
有人可能會(huì)想到,加載這個(gè)文件,也可能造成網(wǎng)頁(yè)失去響應(yīng)。解決辦法有兩個(gè),一個(gè)是把它放在網(wǎng)頁(yè)底部加載,另一個(gè)是寫成下面這樣:
<script src="js/require.js" defer async="true" ></script>
async屬性表明這個(gè)文件需要異步加載,避免網(wǎng)頁(yè)失去響應(yīng)。IE不支持這個(gè)屬性,只支持defer,所以把defer也寫上。
加載require.js以后,下一步就要加載我們自己的代碼了。假定我們自己的代碼文件是main.js,也放在js目錄下面。那么,只需要寫成下面這樣就行了:
<script src="js/require.js" data-main="js/main"></script>
data-main屬性的作用是,指定網(wǎng)頁(yè)程序的主模塊。在上例中,就是js目錄下面的main.js,這個(gè)文件會(huì)第一個(gè)被require.js加載。由于require.js默認(rèn)的文件后綴名是js,所以可以把main.js簡(jiǎn)寫成main。
三、主模塊的寫法
上一節(jié)的main.js,我把它稱為"主模塊",意思是整個(gè)網(wǎng)頁(yè)的入口代碼。它有點(diǎn)像C語(yǔ)言的main()函數(shù),所有代碼都從這兒開(kāi)始運(yùn)行。
下面就來(lái)看,怎么寫main.js。
如果我們的代碼不依賴任何其他模塊,那么可以直接寫入javascript代碼。
// main.js alert("加載成功!");
但這樣的話,就沒(méi)必要使用require.js了。真正常見(jiàn)的情況是,主模塊依賴于其他模塊,這時(shí)就要使用AMD規(guī)范定義的的require()函數(shù)。
// main.js
require(['moduleA', 'moduleB', 'moduleC'], function (moduleA, moduleB, moduleC){
// some code here
});
? ??require()函數(shù)接受兩個(gè)參數(shù)。第一個(gè)參數(shù)是一個(gè)數(shù)組,表示所依賴的模塊,上例就是['moduleA', 'moduleB', 'moduleC'],即主模塊依賴這三個(gè)模塊;第二個(gè)參數(shù)是一個(gè)回調(diào)函數(shù),當(dāng)前面指定的模塊都加載成功后,它將被調(diào)用。加載的模塊會(huì)以參數(shù)形式傳入該函數(shù),從而在回調(diào)函數(shù)內(nèi)部就可以使用這些模塊。
require()異步加載moduleA,moduleB和moduleC,瀏覽器不會(huì)失去響應(yīng);它指定的回調(diào)函數(shù),只有前面的模塊都加載成功后,才會(huì)運(yùn)行,解決了依賴性的問(wèn)題。
舉報(bào)
整個(gè)項(xiàng)目組織、開(kāi)發(fā)、發(fā)布等流程,教你如何創(chuàng)建一個(gè)電子商務(wù)網(wǎng)站
1 回答requirejs 的依賴文件和 js文件合并的問(wèn)題
2 回答為什么要用命令行??
8 回答老師用的前端模板引擎MSTMPL是自己寫的嗎?還是用的開(kāi)源的模板引擎?
1 回答寫代碼一定要用設(shè)計(jì)模式么
2 回答設(shè)計(jì)和交互用的什么軟件呢?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-01-09
require.js的誕生是為了解決兩大問(wèn)題,第一實(shí)現(xiàn)js文件的異步加載,避免網(wǎng)頁(yè)失去響應(yīng),第二管理模塊之間的依賴性,便于代碼的編寫和維護(hù)。
使用require.js的第一步,是先去官方網(wǎng)站下載最新版本。
下載后,假定把它放在js子目錄下面,就可以加載了。
?
1
? ?
<script src="js/require.js"></script>
? ?
有人可能會(huì)想到,加載這個(gè)文件,也可能造成網(wǎng)頁(yè)失去響應(yīng)。解決辦法有兩個(gè),一個(gè)是把它放在網(wǎng)頁(yè)底部加載,另一個(gè)是寫成下面這樣:
?
1
? ?
<script src="js/require.js" defer async="true" ></script>
? ?
async屬性表明這個(gè)文件需要異步加載,避免網(wǎng)頁(yè)失去響應(yīng)。IE不支持這個(gè)屬性,只支持defer,所以把defer也寫上。
加載require.js以后,下一步就要加載我們自己的代碼了。假定我們自己的代碼文件是main.js,也放在js目錄下面。那么,只需要寫成下面這樣就行了:
?
1
? ?
<script src="js/require.js" data-main="js/main"></script>
? ?
data-main屬性的作用是,指定網(wǎng)頁(yè)程序的主模塊。在上例中,就是js目錄下面的main.js,這個(gè)文件會(huì)第一個(gè)被require.js加載。由于require.js默認(rèn)的文件后綴名是js,所以可以把main.js簡(jiǎn)寫成main。
三、主模塊的寫法
上一節(jié)的main.js,我把它稱為"主模塊",意思是整個(gè)網(wǎng)頁(yè)的入口代碼。它有點(diǎn)像C語(yǔ)言的main()函數(shù),所有代碼都從這兒開(kāi)始運(yùn)行。
下面就來(lái)看,怎么寫main.js。
如果我們的代碼不依賴任何其他模塊,那么可以直接寫入javascript代碼。
// main.js
alert("加載成功!");
但這樣的話,就沒(méi)必要使用require.js了。真正常見(jiàn)的情況是,主模塊依賴于其他模塊,這時(shí)就要使用AMD規(guī)范定義的的require()函數(shù)。
// main.js
require(['moduleA', 'moduleB', 'moduleC'], function (moduleA, moduleB, moduleC){
// some code here
});
? ??require()函數(shù)接受兩個(gè)參數(shù)。第一個(gè)參數(shù)是一個(gè)數(shù)組,表示所依賴的模塊,上例就是['moduleA', 'moduleB', 'moduleC'],即主模塊依賴這三個(gè)模塊;第二個(gè)參數(shù)是一個(gè)回調(diào)函數(shù),當(dāng)前面指定的模塊都加載成功后,它將被調(diào)用。加載的模塊會(huì)以參數(shù)形式傳入該函數(shù),從而在回調(diào)函數(shù)內(nèi)部就可以使用這些模塊。
require()異步加載moduleA,moduleB和moduleC,瀏覽器不會(huì)失去響應(yīng);它指定的回調(diào)函數(shù),只有前面的模塊都加載成功后,才會(huì)運(yùn)行,解決了依賴性的問(wèn)題。