學習requireJS的中文網站——RequireJS中文網
百科:requirejs是一個JavaScript檔案和子產品加載器。requireJS允許你把你的javascript代碼獨立成檔案和子產品,同時管理每個子產品間的依賴關系。RequireJS的目标是鼓勵代碼的子產品化,它使用了不同于傳統<script>标簽的腳本加載步驟。使用RequireJS加載子產品化腳本将提高代碼的加載速度和品質。
總結百科上的介紹,requireJS的核心任務便是解決js檔案的子產品化和依賴關系
我們以一個簡單的demo為例,從require的配置檔案開始說(這裡我定義為main,js)
main.js
require.config({
//預設的baseUrl為包含RequireJS的那個HTML頁面的所屬目錄。
baseUrl:'../requireJS',//逗号敢不敢别再忘
paths:{
'jquery':'lib/jquery',
'bootstrap':'lib/bootstrap'
},
/*
* shim實作綁定檔案的依賴關系,
* 以下為例,bootstrap中用到jQuery,是以bootstrap依賴jQuery,
* 通過下面的語句将建立起兩者的依賴關系,系統加載bootstrap之前将先加載jquery
*/
shim:{
'bootstrap':{
'deps':['jquery']
}
}
})
使用require.config()函數來定義配置檔案内容,baseUrl是基本路徑,paths在baseUrl的基礎上找到最終路徑,shim定義依賴關系
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>my requireJS demo</title>
<!--也可以這樣寫:<script data-main='lib/main' src='lib/require.js'></script>這樣寫必須保證require.js加載完畢再加載main.js-->
<script src="lib/require.js"></script>
<script src="lib/main.js"></script>
</head>
<body>
<div id="x" style="width: 40px;height: 20px;cursor: pointer;text-align: center;">
你好
</div>
<script type="text/javascript">
/*
* require最大的好處就是實作子產品化,按需加載
*/
require(['jquery'], function($) {
$('#x').click(function() {
$(this).css({
'background-color': 'red',
'color': 'white'
})
})
})
</script>
</body>
</html>
運作結果