天天看點

學會使用requireJS

學習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>
           

運作結果

學會使用requireJS

繼續閱讀