初學RequireJS

本文以初學身份對比RequireJS和jQuery來講明前者的優勢,若使用其它庫,能夠「眼動」將jQuery替換爲你所用的js庫;數組

「模塊化」,實現某一功能的方法獨立化,使其能夠複用;這一高大上的名詞,按個人理解,和jQurey插件的功能同樣;那爲何須要學習RequireJS呢?模塊化

jQuery,是將jQuery定義爲全局變量,在腳本的任何地方都能調用jQuery中的方法;函數

對比於jQuery,RequireJS的優勢就是,能夠將各依賴關係(依賴關係---js庫,指你須要引用這個庫才能作其餘功能)聲明,並將各個依賴關係做爲函數參數處理,便可以把jQuery等js庫的做用域定義爲局部(函數內部);學習

RequireJS是爲實現模塊化存在的,其核心功能有兩個:定義模塊define()和調用模塊require();ui

定義模塊define(),建一個功能庫:插件

//推薦一個模塊爲一個單獨的js文件;
無依賴關係的模塊:code

define({
name1:'value1',
name2:'value2'
})

無依賴關係,但須要處理一些初始化任務:作用域

define(function(){

})

有依賴關係的模塊:回調函數

define('module name',[],function(){

//第一個參數爲模塊名稱,可選項--不建議命名;
//[]表示依賴關係的數組列表;
//function(){}回調函數,當指定模塊都加載成功後被調用;
//加載的模塊以參數形式傳入該函數中,從而在回調函數內部就能夠使用這麼模塊;
//參數和模塊的數量和次序要一一對應;
//或者經過arguments[]來調用依賴;
//
//require()加載這個模塊以前會先加載依賴關係;
//模塊應該返回一個本模塊/函數 return {
// 屬性名:值,
// 方法名:function(){}
//模塊名默認爲腳本文件名;
//}

})

調用模塊require():io

require([],function(){

//[]表示依賴關係的數組列表;
//function(){}回調函數,當指定模塊都加載成功後被調用;
//加載的模塊以參數形式傳入該函數中,從而在回調函數內部就能夠使用這個模塊的屬性或方法;
//參數和模塊的數量和次序要一一對應;
//或者經過arguments[]來調用依賴;

})
相關文章
相關標籤/搜索