日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JS模塊化工具requirejs教程(一):初識(shí)requirejs

 KyunraWang 2017-03-24

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

requirejs

RequireJS是一個(gè)非常小巧的JavaScript模塊載入框架,是AMD規(guī)范最好的實(shí)現(xiàn)者之一。最新版本的RequireJS壓縮后只有14K,堪稱非常輕量。它還同時(shí)可以和其他的框架協(xié)同工作,使用RequireJS必將使您的前端代碼質(zhì)量得以提升。

requirejs能帶來(lái)什么好處

官方對(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的基本功能"模塊化加載",什么是模塊化加載?我們要從之后的篇幅中一一解釋

先來(lái)看一段常見(jiàn)的場(chǎng)景,通過(guò)示例講解如何運(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();
})()

第二種方法使用了塊作用域來(lái)申明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 -> 
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",說(shuō)明運(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)行講解:JS模塊化工具requirejs教程(二):基本知識(shí)

文章來(lái)源:https://github.com/liuxey/blog/issues/1

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多