序
RequireJS 是一個JavaScript模塊加載器。它非常適合在瀏覽器中使用,但它也可以用在其他腳本環境,就像 Rhino and Node。使用RequireJS加載模塊化腳本將提高代碼的加載速度和質量。
requireJs下載
github地址:https://github.com/requirejs/requirejs
bower下載:
$ bower install requirejs
requirejs的基本api
- define:定義模塊函數,可以定義模塊的同時依賴某些模塊
- require: 模塊依賴函數
- require.config :配置參數選項
- baseUrl:用於加載模塊的根路徑。
- paths:用於映射不存在根路徑下面的模塊路徑。
- shims:配置在腳本/模塊外面並沒有使用RequireJS的函數依賴並且初始化函數。例如angularjs並沒有使用 RequireJS定義,但是你還是想通過RequireJS來使用它,那麼你就需要在配置中把它定義爲一個shim。
- deps:加載依賴關係數組
簡單演示案例
目錄結構
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>requirejs模塊化</title>
</head>
<body>
<h2>requirejs模塊化</h2>
<button id="btn">test button</button>
<script src="lib/require.js" data-main="main.js"></script>
</body>
</html>
config.js
//配置信息
requirejs.config({
baseUrl: './js',//配置依賴的參考路徑
paths: { //由於配置的依賴根路徑爲"./js",而jquery並不在這裏,需要定義paths配置如下
jquery: '../lib/jquery-1.10.1.min'
}
});
main.js
/*
* 在沒有配置baseUrl參數以前,
* 所有的依賴都是以入口html文件爲根目錄,
* 所以下面的依賴是未修改baseUrl路徑之前的依賴
* */
require(['./config/config', './js/app']);
app.js
//依賴apple和banana模塊
require(['jquery', 'apple', 'banana'], function ($, a, b) {
console.log(a.name, b.name); //最終輸出apple banana
$('#btn').click(function () {
alert(123);
})
});
apple.js
//定義匿名模塊,調用的時候以文件名爲模塊名稱
define(function () {
return {
name: 'apple',
price: 15
}
});
banana.js
//定義匿名模塊,調用的時候以文件名爲模塊名稱
define(function () {
return {
name: 'banana',
price: 10
}
});
通過以上目錄結構搭建項目,按F12能夠看到輸出了apple banana
信息,說明模塊成功。
上面只是一個最簡單的案例,並不足以說明requirejs的全部,更多能容請看下回分解。