RequireJs模塊化基礎

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的全部,更多能容請看下回分解。

發佈了70 篇原創文章 · 獲贊 97 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章