require.js基本使用
阿新 • • 發佈:2019-01-10
用這個外掛目的:
這個外掛的體積非常小14k左右,主要是解決目前我們js檔案引入臃腫的問題,它可以將我們需要的js檔案定義成一個模組的方式,只要我們想引入某個模組,我們宣告引入就可以了。而且是非同步載入的模式,對瀏覽器體驗也非常好,不會阻塞渲染。
基本API
require定義三個變數:define,require,requirejs,其中require === requirejs,一般使用require更簡短
define 從名字就可以看出這個api是用來定義一個模組
require 載入依賴模組,並執行載入完後的回撥函式
第一步:a.js定義
define (function(){
function fun1(){
alert("it works");
}
fun1();
})
第二步:引入這個模組
require(["js/a"],function(){
alert("load finished");
})
注意:a.js引入在js檔案下,同時a.js中字尾不要了。
載入檔案
載入本地是上面的那個樣子,如果我們要載入其他網站要用到require.config這個方法
require.config({
paths : {
"jquery" : ["http://libs.baidu.com/jquery/2.0.3/jquery", "js/jquery"],
"a" : "js/a"
}
})
require(["jquery","a"],function($){
$(function(){
alert("load finished");
})
})
這樣配置後,當百度的jquery沒有載入成功後,會載入本地js目錄下的jquery
在使用requirejs時,載入模組時不用寫.js字尾的,當然也是不能寫字尾
上面例子中的callback函式中發現有$引數,這個就是依賴的jquery模組的輸出變數,如果你依賴多個模組,可以依次寫入多個引數來使用:
講講data-main這個屬性:
<script data-main="js/main" src="js/require.js"></script>
其實就是引入require.js後,再引入js資料夾下的main.js檔案