第一次接觸JS require.js模塊化工具
隨著網(wǎng)站功能逐漸豐富,網(wǎng)頁(yè)中的js也變得越來越復(fù)雜和臃腫,原有通過script標(biāo)簽來導(dǎo)入一個(gè)個(gè)的js文件這種方式已經(jīng)不能滿足現(xiàn)在互聯(lián)網(wǎng)開發(fā)模式,我們需要團(tuán)隊(duì)協(xié)作、模塊復(fù)用、單元測(cè)試等等一系列復(fù)雜的需求。

RequireJS是一個(gè)非常小巧的JavaScript模塊載入框架,是AMD規(guī)范最好的實(shí)現(xiàn)者之一。最新版本的RequireJS壓縮后只有14K,堪稱非常輕量。它還同時(shí)可以和其他的框架協(xié)同工作,使用RequireJS必將使您的前端代碼質(zhì)量得以提升。
requirejs能帶來什么好處
官方對(duì)requirejs的描述:
RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.
大致意思:
在瀏覽器中可以作為js文件的模塊加載器,也可以用在Node和Rhino環(huán)境,balabala...。這段話描述了requirejs的基本功能"模塊化加載",什么是模塊化加載?我們要從之后的篇幅中一一解釋
先來看一段常見的場(chǎng)景,通過示例講解如何運(yùn)用requirejs
正常編寫方式
index.html:
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="a.js"></script> </head> <body> <span>body</span> </body> </html>
a.js:
function fun1(){
alert("it works");
}
fun1();
可能你更喜歡這樣寫
(function(){
function fun1(){
alert("it works");
}
fun1();
})()
第二種方法使用了塊作用域來申明function防止污染全局變量,本質(zhì)還是一樣的,當(dāng)運(yùn)行上面兩種例子時(shí)不知道你是否注意到,alert執(zhí)行的時(shí)候,html內(nèi)容是一片空白的,即<span>body</span>并未被顯示,當(dāng)點(diǎn)擊確定后,才出現(xiàn),這就是JS阻塞瀏覽器渲染導(dǎo)致的結(jié)果。
requirejs寫法
當(dāng)然首先要到requirejs的網(wǎng)站去下載js -> requirejs.rog
index.html:
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="require.js"></script> <script type="text/javascript"> require(["a"]); </script> </head> <body> <span>body</span> </body> </html>
a.js:
define(function(){
function fun1(){
alert("it works");
}
fun1();
})
瀏覽器提示了"it works",說明運(yùn)行正確,但是有一點(diǎn)不一樣,這次瀏覽器并不是一片空白,body已經(jīng)出現(xiàn)在頁(yè)面中,目前為止可以知道requirejs具有如下優(yōu)點(diǎn):
1、防止js加載阻塞頁(yè)面渲染
2、使用程序調(diào)用的方式加載js,防出現(xiàn)如下丑陋的場(chǎng)景
<script type="text/javascript" src="a.js"></script> <script type="text/javascript" src="b.js"></script> <script type="text/javascript" src="c.js"></script> <script type="text/javascript" src="d.js"></script> <script type="text/javascript" src="e.js"></script> <script type="text/javascript" src="f.js"></script> <script type="text/javascript" src="g.js"></script> <script type="text/javascript" src="h.js"></script> <script type="text/javascript" src="i.js"></script> <script type="text/javascript" src="j.js"></script>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家認(rèn)識(shí)require.js模塊化工具有所幫助。
- Require.JS中的幾種define定義方式示例
- require.js與bootstrap結(jié)合實(shí)現(xiàn)簡(jiǎn)單的頁(yè)面登錄和頁(yè)面跳轉(zhuǎn)功能
- require.js+vue開發(fā)微信上傳圖片組件
- require.js配合插件text.js實(shí)現(xiàn)最簡(jiǎn)單的單頁(yè)應(yīng)用程序
- require.js的用法詳解
- 詳解Sea.js中Module.exports和exports的區(qū)別
- sea.js常用的api簡(jiǎn)易文檔
- Seajs是什么及sea.js 由來,特點(diǎn)以及優(yōu)勢(shì)
- Sea.JS知識(shí)總結(jié)
- 詳解Require.js與Sea.js的區(qū)別
相關(guān)文章
在JavaScript中獲取請(qǐng)求的URL參數(shù)
在ASP.NET后臺(tái)代碼中,對(duì)于這樣的URL請(qǐng)求地址:http://www.abc.com?id=001,我們可以通過Request.QueryString["id"]的方法很容易的獲取到URL中請(qǐng)求的參數(shù)的值,但是要在前臺(tái)js代碼中獲取請(qǐng)求的參數(shù)的值,應(yīng)該怎么做呢?2010-12-12
JS獲取url參數(shù),JS發(fā)送json格式的POST請(qǐng)求方法
下面小編就為大家分享一篇JS獲取url參數(shù),JS發(fā)送json格式的POST請(qǐng)求方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03
JavaScript在圖片繪制文字兩種方法的實(shí)現(xiàn)與對(duì)比
這篇文章主要為大家詳細(xì)介紹了前端實(shí)現(xiàn)在圖片上繪制文字的兩種思路,支持即粘即貼即用,文中的示例代碼講解詳細(xì),需要的小伙伴可以了解下2024-03-03
JavaScript將數(shù)組轉(zhuǎn)換為鏈表的方法
這篇文章主要介紹了JavaScript將數(shù)組轉(zhuǎn)換為鏈表的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
JavaScript基于SVG的圖片切換效果實(shí)例代碼
這篇文章主要介紹了JavaScript基于SVG的圖片切換效果實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
js實(shí)現(xiàn)的仿Photoshop鼠標(biāo)滾輪控制輸入框取值(修正兼容Chrome)
一直很想做這個(gè)效果,原理是監(jiān)聽鼠標(biāo)滾輪事件;可將此效果繼續(xù)發(fā)散到其他應(yīng)用上,如圖片縮放,頁(yè)面縮放等。2010-02-02
JS實(shí)現(xiàn)獲取毫秒值及轉(zhuǎn)換成年月日時(shí)分秒的方法
這篇文章主要介紹了JS實(shí)現(xiàn)獲取毫秒值及轉(zhuǎn)換成年月日時(shí)分秒的方法,結(jié)合實(shí)例形式分析了javascript常見的Date()日期時(shí)間獲取、轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2018-08-08

