RequireJS使用
RequireJS
RequireJS是一個(gè)瀏覽器端AMD模塊規(guī)范實(shí)現(xiàn),相對(duì)于ES6 import語法,能夠在不跨域的情況下導(dǎo)入,使用簡單。
1 ?被導(dǎo)入端
被導(dǎo)入端需要在函數(shù)末尾調(diào)用define函數(shù),將附加依賴模塊名稱作為第一個(gè)參數(shù)傳入,第二個(gè)參數(shù)是一個(gè)返回導(dǎo)出項(xiàng)對(duì)象的函數(shù):
define(["drivable"], function(drivableModule){
????function Car() { }
????Car.prototype = new drivableModule.Drivable();
????Car.prototype.drive = function() {
????????console.log("Car driving...");
????}
????}
????return {
????????Car:Car
????}
}); // car.js
上面的模塊定義依賴于drivable.js模塊,并將其重新命名為drivableModule,導(dǎo)出Car類型。作為第一個(gè)參數(shù)的列表元素和作為第二個(gè)參數(shù)的函數(shù)的參數(shù)是一一對(duì)應(yīng)的,如果不依賴任何其它模塊,第一個(gè)參數(shù)就是一個(gè)空列表,相對(duì)的第二個(gè)函數(shù)就沒有參數(shù)。
2 ?導(dǎo)入端
頂層模塊導(dǎo)入時(shí)需使用require函數(shù)聲明所需模塊:
window.onload = function() {
????require(["car"], function(carModule) {
????????var car = new carmodule.Car();
????????car.drive();
????});
} // main.js
上面導(dǎo)入了car.js模塊并重命名為carModule。