最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Require.js使用方法(總結)

 更新時間:2017年10月26日 08:40:26   作者:Dragonir  
下面小編就為大家?guī)硪黄赗equire.js使用方法(總結)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、為什么要使用require.js

首先一個頁面如果在加載多個js文件的時候,瀏覽器會停止網頁渲染,加載文件越多,網頁失去響應的時間就會越長;其次,由于js文件之間存在依賴關系,因此必須嚴格保證加載順序,當依賴關系很復雜的時候,代碼的編寫和維護都會變得困難。

require.js,就是為了解決這兩個問題:

1. 實現(xiàn)js文件的異步加載,避免網頁失去響應;
2. 管理模塊之間的依賴性,便于代碼的編寫和維護。

二、require.js的加載

第一步,去官網下載最新版本,直接放到頁面進行加載

<script src="js/require.js"></script>

加載這個文件可能會導致網頁失去響應,可以將它放到頁面的底部加載,也可以這樣寫

<script src="js/require.js" defer async="true" ></script>

async屬性表明這個文件需要異步加載,避免網頁失去響應。IE不支持這個屬性,只支持defer,所以把defer也寫上。

加載require.js以后,下一步就要加載我們自己的代碼了,也就是入口,可以叫主模塊,如果文件名叫main.js,寫成下面這樣就可以了:

<script src="js/require.js" data-main="js/main"></script>  .js后綴可以省略 


三、主模塊的寫法

如果主模塊依賴于jQuery可以這樣寫

require(['jquery'], function ($){ 
   alert($); 
}); 

四、require.config()方法

require.config({ 
  paths: { 
    "jquery": "jquery.min", 
    "underscore": "underscore.min", 
    "backbone": "backbone.min"
  } 
}); 

上面的代碼給出了三個模塊的文件名,路徑默認與main.js在同一個目錄(js子目錄)。如果這些模塊在其他目錄,比如js/lib目錄,則有兩種寫法。

• 一種是逐一指定路徑

require.config({ 
  paths: { 
    "jquery": "lib/jquery.min", 
    "underscore": "lib/underscore.min", 
    "backbone": "lib/backbone.min"
  } 
}); 

• 另一種則是直接改變基目錄(baseUrl)。

require.config({ 
  baseUrl: "js/lib", 
  paths: { 
    "jquery": "jquery.min", 
    "underscor: "underscore.min", 
    "backbone": "backbone.min" 
  } 
}); 

• 如果某個模塊在另一臺主機上,也可以直接指定它的網址,比如

require.config({ 
  paths: { 
    "jquery": "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min"
  } 
}); 

五、AMD模塊的寫法

require.js加載的模塊,采用AMD規(guī)范。也就是說,模塊必須按照AMD的規(guī)定來寫。

具體來說,就是模塊必須采用特定的define()函數(shù)來定義。如果一個模塊不依賴其他模塊,那么可以直接定義在define()函數(shù)之中。

// math.js 
define(function (){ 
  var add = function (x,y){ 
    return x+y; 
  }; 
  return { 
    add: add 
  }; 
}); 

加載方法如下:

 // main.js 
require(['math'], function (math){ 
  alert(math.add(1,1)); 
}); 

如果這個模塊還依賴其他模塊,那么define()函數(shù)的第一個參數(shù),必須是一個數(shù)組,指明該模塊的依賴性。

define(['myLib'], function(myLib){ 
  function foo(){ 
    myLib.doSomething(); 
  } 
  return {  //返回模塊中的函數(shù) 
    foo : foo 
  }; 
}); 

當require()函數(shù)加載上面這個模塊的時候,就會先加載myLib.js文件。

六、加載非規(guī)范的模塊(shim的使用方式)

// app.js 
 function sayHello(name){ 
  alert('Hi '+name); 
} 
// main.js 
require.config({ 
  shim: { 
    'app': { //這個鍵名為要載入的目標文件的文件名,不能隨便命名。 
      exports: 'sayHello' //exports的值為my.js提供的 對外接口的名稱 
    } 
  } 
}); 
 
require(['app'], function(sayHello) { 
 alert(sayHello()) 
}) 

導出一個函數(shù),意味著我們得到了一個javaScript類

但是如果在my.js中寫了很多function,整合成一個function有點麻煩,想直接導出?方法如下:

// app.js 
function sayHi(name){ 
 alert('Hi '+name); 
} 
function sayHello(name){ 
 alert('Hiello '+name); 
}
// main.js 
  require.config({ 
    shim: { 
      app: { 
        init: function() { //這里使用init將2個接口返回 
          return { 
            sayHi: sayHi, 
            sayHello: sayHello 
          } 
        } 
      } 
    } 
  }); 
 
  require(['app'], function(a) { 
    a.sayHi('zhangsan'); 
    a.sayHello('lisi'); 
  }); 

shim的有序導入

require.config({ 
 
 shim: { 
    'jquery.ui.core': ['jquery'], //表示在jquery導入之后導入 
    'jquery.ui.widget': ['jquery'], 
    'jquery.ui.mouse': ['jquery'], 
    'jquery.ui.slider':['jquery'] 
   }, 
 paths : {  
  jquery : 'jquery-2.1.1/jquery',  
  domReady : 'require-2.1.11/domReady',  
  'jquery.ui.core' : 'jquery-ui-1.10.4/development-bundle/ui/jquery.ui.core',  
  'jquery.ui.widget' : 'jquery-ui-1.10.4/development-bundle/ui/jquery.ui.widget',  
  'jquery.ui.mouse' : 'jquery-ui-1.10.4/development-bundle/ui/jquery.ui.mouse',  
  'jquery.ui.slider' : 'jquery-ui-1.10.4/development-bundle/ui/jquery.ui.slider' 
  } 
  });  
 
  require(['jquery', 'domReady','jquery.ui.core','jquery.ui.widget','jquery.ui.mouse','jquery.ui.slider'], function($) {    
   $("#slider" ).slider({    
    value:0,   
    min: 0,   
    max: 4,   
    step: 1,   
    slide: function( event, ui ) {}  
     });  
   }); 

以上這篇基于Require.js使用方法(總結)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • JS對URL字符串進行編碼/解碼分析

    JS對URL字符串進行編碼/解碼分析

    節(jié)約時間,先寫出總結,推薦使用encodeURIComponent()來對URL進行編碼。
    2008-10-10
  • JS基于正則表達式實現(xiàn)的密碼強度驗證功能示例

    JS基于正則表達式實現(xiàn)的密碼強度驗證功能示例

    這篇文章主要介紹了JS基于正則表達式實現(xiàn)的密碼強度驗證功能,涉及javascript事件響應及基于正則的字符遍歷、判斷等相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • 淺析JavaScript中作用域和作用域鏈

    淺析JavaScript中作用域和作用域鏈

    本文主要介紹了JavaScript中作用域和作用域鏈解析,條理分明,方便理解,這里推薦給小伙伴們,有需要的朋友可以參考下
    2016-12-12
  • javascript省市級聯(lián)功能實現(xiàn)方法實例詳解

    javascript省市級聯(lián)功能實現(xiàn)方法實例詳解

    這篇文章主要介紹了javascript省市級聯(lián)功能實現(xiàn)方法,以不同實例形式分析了JavaScript實現(xiàn)省市級聯(lián)菜單的具體技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • JavaScript實現(xiàn)輪播圖片完整代碼

    JavaScript實現(xiàn)輪播圖片完整代碼

    這篇文章主要為大家介紹了JavaScript實現(xiàn)輪播圖片的完整代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • D3.js實現(xiàn)柱狀圖的方法詳解

    D3.js實現(xiàn)柱狀圖的方法詳解

    相信大家都知道數(shù)據(jù)可視化就是借助圖形化的手段把生硬的數(shù)據(jù)生動化,以此來展示出數(shù)據(jù)想要表達的信息,而圖表是最通常的一種數(shù)據(jù)可視化手段??扇孔约杭兪謩泳帉懜鞣N圖表實在是讓人頭疼,各種計算各種煩?,F(xiàn)在就為大家介紹如何用D3.js來實現(xiàn)柱狀圖。
    2016-09-09
  • 教你用Js寫一個簡單的五子棋小游戲

    教你用Js寫一個簡單的五子棋小游戲

    聽說這是一道騰訊的面試題,可能網上已經有不少答案了,晚上沒事看到這道題就自己做了下,下面這篇文章主要給大家介紹了關于如何用Js寫一個簡單的五子棋小游戲的相關資料,需要的朋友可以參考下
    2022-07-07
  • JavaScript實現(xiàn)圖片的放大縮小及拖拽功能示例

    JavaScript實現(xiàn)圖片的放大縮小及拖拽功能示例

    這篇文章主要介紹了JavaScript實現(xiàn)圖片的放大縮小及拖拽功能,結合實例形式分析了javascript鼠標事件響應及針對圖形元素的屬性操作相關實現(xiàn)技巧,需要的朋友可以參考下
    2019-05-05
  • 關于json字符串與實體之間的嚴格驗證代碼

    關于json字符串與實體之間的嚴格驗證代碼

    在一個項目中要求嚴格驗證傳入的json字符串與定義的 類匹配,否則不記錄。后來查了好多資料才弄明白,下面小編給大家分享下關于json字符串與實體之間的嚴格驗證,感興趣的朋友一起看看吧
    2016-11-11
  • 利用JavaScript實現(xiàn)一個日期范圍選擇器

    利用JavaScript實現(xiàn)一個日期范圍選擇器

    日期范圍選擇器是一個常見的Web應用功能,它允許用戶選擇一個日期范圍,本文我們將使用JavaScript來實現(xiàn)這個功能,感興趣的小伙伴可以了解下
    2024-01-01

最新評論

天津市| 盖州市| 中山市| 临猗县| 巴楚县| 高陵县| 平潭县| 东丰县| 惠东县| 三江| 昭通市| 阜阳市| 华蓥市| 文登市| 阜城县| 石首市| 毕节市| 敦煌市| 明水县| 灵山县| 乌苏市| 宁河县| 淅川县| 双牌县| 丹棱县| 独山县| 海安县| 南投县| 凌源市| 和静县| 南澳县| 张北县| 焉耆| 贺兰县| 凤冈县| 甘孜县| 韶山市| 德安县| 稷山县| 望江县| 姚安县|