|||-begincss
爲了提升代碼的複用度,開發人員會按照功能把大量的js代碼分紅若干文件,這樣在多個頁面就可使用同一個文件了
|||-endhtml
require.config({ baseUrl: '../resource/app', paths: { 'hd': 'hd', 'css': '../lib/css.min', 'jquery': '../lib/jquery.min', 'angular': '../lib/angular.min', 'bootstrap': '../lib/bootstrap.min', }, shim: { 'hd': { // exports: 'modal', init: function () { return { modal: modal, success: success, } } }, //houdunren.com 'bootstrap': { 'deps': ['jquery', 'css!../css/bootstrap.min.css', 'css!../css/font-awesome.min.css'] } } });
參考或轉自:【模塊化開發】------requireJS的基本使用------【凡塵】
http://www.mamicode.com/info-detail-2285125.htmljquery
前言bootstrap
爲了提升代碼的複用度,開發人員會按照功能把大量的js代碼分紅若干文件,這樣在多個頁面就可使用同一個文件了。,下面是某個網站的js引用狀況數組
雖然代碼的複用度提高了,可是缺點也體現了出來瀏覽器
缺點:服務器
<script src="require.js"></script>
第二步:異步加載require.jsapp
<script src="require.js" defer async="true"></script>
//async屬性代表這個文件須要異步加載, IE不支持該屬性,只支持defer因此把defer也寫上
第三步:加載入口文件異步
<script src="require.js" data-main="js/index" defer async="true"/><script>
data-main:用於加載入口文件(當require加載完畢後,須要引進主模塊js文件)
第四步:使用require.config方法配置各個模塊所加載的路徑async
require.config方法:
參數是一個對象:對象中有3個屬性
屬性1:baseUrl:指定統一的路徑
屬性2:paths:每一個模塊的路徑
屬性3:shim:定義非AMD
require.config({ //指定根路徑js文件夾 baseUrl:"js", //每一個文件路徑 paths:{ "jquery":"lib/jquery-1.11.3", "layer":"plug/layer", "swiper":"plug/swiper.min", "banner":"list/banner", "alert":"list/alert" }, //非AMD文件的模塊 shim:{ } })
第五步:AMD規範定義模塊
//如下定義了一個swiper的輪播圖
define(["jquery","swiper"],function(){ function init(){ new Swiper (‘.swiper-container‘, { direction: ‘horizontal‘, loop: true, autoplay : 3000, speed:300, pagination: ‘.swiper-pagination‘, // 若是須要前進後退按鈕 nextButton: ‘.swiper-button-next‘, prevButton: ‘.swiper-button-prev‘, }) } return { init:init } })
第六步:入口的核心文件
require(["config"],function(){ require(["jquery","layer","swiper","banner","alert"],function($,layer,swiper,banner,alert){ banner.init() alert.init() }) })
第七步:若是遇到非AMD規範的模塊
shim:{ 模塊名:{ deps:[""],//所依賴的模塊 exports:模塊名//導出模塊的名稱 } }