AMD_CMD_RequireJS

題目1: 為什么要使用模塊化?


  • 最主要的目的:

    • 解決命名沖突
    • 依賴管理
  • 其他價(jià)值

    • 提高代碼可讀性
    • 代碼解耦属瓣,提高復(fù)用性

題目2: CMD载迄、AMD、CommonJS 規(guī)范分別指什么抡蛙?有哪些應(yīng)用


CMD 規(guī)范

CMDCommon Module Definition)是 SeaJS 在推廣過程中對模塊定義的規(guī)范化產(chǎn)出
AMD 的不同在于护昧,AMD 推崇依賴前置會在一開始加載好所有需要的模塊,而 CMD 則推崇依賴就近粗截,當(dāng)需要時(shí)才加載

//  初始化
seajs.use(["init.js"],function(init){})

//init.js
define(function(require, exports, module) {
  var math = require('math')
  console.log(math.add(1,2))  //  3
});

//math.js
 define(function(require, exports, module){
    var Add = function(x,y){    
        return x + y
    }
    return {
        add: Add
    }
 })

AMD 規(guī)范

AMDAsynchronous Module Definition)惋耙,中文名是異步模塊定義的意思。它是一個(gè)在瀏覽器端模塊化開發(fā)的規(guī)范

由于不是JavaScript原生支持熊昌,使用AMD規(guī)范進(jìn)行頁面開發(fā)需要用到對應(yīng)的庫函數(shù)绽榛,也就是大名鼎鼎RequireJS,實(shí)際上AMD 是 RequireJS 在推廣過程中對模塊定義的規(guī)范化的產(chǎn)出

//   main.js
require(['math'],function(math){
    console.log(math.add(1,2))  //  3
})

//math.js
define(function(){
    var Add = function(x,y){    
        return x + y
    }
    return {
        add: Add
    }
})

CommonJS 規(guī)范

CommonJS 是服務(wù)器端模塊的規(guī)范婿屹,Node.js采用了這個(gè)規(guī)范灭美。Node.JS首先采用了js模塊化的概念。

  1. 在一個(gè)模塊中选泻,存在一個(gè)自由的變量”require”冲粤,它是一個(gè)函數(shù)。

    • 這個(gè)require函數(shù)接收一個(gè)模塊標(biāo)識符页眯。
    • require返回外部模塊所輸出的API梯捕。
    • 如果出現(xiàn)依賴閉環(huán)( dependency cycle ),那么外部模塊在被它的傳遞依賴(transitive dependencies)所require的時(shí)候可能并沒有執(zhí)行完成窝撵;在這種情況下傀顾,require返回的對象必須至少包含此外部模塊在調(diào)用require函數(shù)(會進(jìn)入當(dāng)前模塊執(zhí)行環(huán)境)之前就已經(jīng)準(zhǔn)備完畢的輸出。
    • 如果請求的模塊不能返回碌奉,那么require必須拋出一個(gè)錯(cuò)誤短曾。
  2. 在一個(gè)模塊中,會存在一個(gè)名為exports的自由變量赐劣,它是一個(gè)對象嫉拐,模塊可以在執(zhí)行的時(shí)候把自身的API加入到其中。

  3. 模塊必須使用exports對象來做為輸出的唯一表示魁兼。

//  node.js 中啟動 init.js
var math = require ( 'math.js' )
console.log ( math.add (1, 2 ) )   //  3

//  math.js
var Add = function(x,y){    
    return x + y
}
module.exports = {
    add: Add
}

參考
SeaJS模塊加載器超簡教程
前端模塊化婉徘,AMD與CMD的區(qū)別

題目3: 使用 requirejs 完善入門任務(wù)15,包括如下功能:

git - 預(yù)覽

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末咐汞,一起剝皮案震驚了整個(gè)濱河市盖呼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌化撕,老刑警劉巖几晤,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異植阴,居然都是意外死亡蟹瘾,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門掠手,熙熙樓的掌柜王于貴愁眉苦臉地迎上來热芹,“玉大人,你說我怎么就攤上這事惨撇∫僚В” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵魁衙,是天一觀的道長报腔。 經(jīng)常有香客問我,道長剖淀,這世上最難降的妖魔是什么纯蛾? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮纵隔,結(jié)果婚禮上翻诉,老公的妹妹穿的比我還像新娘炮姨。我一直安慰自己,他們只是感情好碰煌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布舒岸。 她就那樣靜靜地躺著,像睡著了一般芦圾。 火紅的嫁衣襯著肌膚如雪蛾派。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天个少,我揣著相機(jī)與錄音洪乍,去河邊找鬼。 笑死夜焦,一個(gè)胖子當(dāng)著我的面吹牛壳澳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茫经,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼钾埂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了科平?” 一聲冷哼從身側(cè)響起褥紫,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瞪慧,沒想到半個(gè)月后髓考,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弃酌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年氨菇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妓湘。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡查蓉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出榜贴,到底是詐尸還是另有隱情豌研,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布唬党,位于F島的核電站鹃共,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏驶拱。R本人自食惡果不足惜霜浴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蓝纲。 院中可真熱鬧阴孟,春花似錦晌纫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至类溢,卻和暖如春凌蔬,著一層夾襖步出監(jiān)牢的瞬間露懒,已是汗流浹背闯冷。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留懈词,地道東北人蛇耀。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像坎弯,于是被迫代替她去往敵國和親纺涤。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 為什么要使用模塊化拧咳? 最主要的目的:解決命名沖突依賴管理 其他價(jià)值提高代碼可讀性代碼解耦,提高復(fù)用性 CMD囚灼、AM...
    Eazer閱讀 663評論 3 1
  • 題目1: 為什么要使用模塊化骆膝? 模塊的由來:嵌入網(wǎng)頁的JS代碼越來越龐大,越來越像桌面程序灶体,需要一個(gè)團(tuán)隊(duì)去分工協(xié)作...
    蕭雪圣閱讀 277評論 0 0
  • 題目1: 為什么要使用模塊化阅签? 解決命名沖突 依賴管理 提高代碼可讀性 代碼解耦,提高復(fù)用性 題目2: CMD蝎抽、A...
    撫年華輕過閱讀 345評論 0 0
  • 有時(shí)我真想自私一把,是你們逼的狭吼。這些年层坠,你們沒有體會到我的堅(jiān)強(qiáng)嗎?啊刁笙,我終于明白了我的堅(jiān)強(qiáng)也是被逼出來的∑苹ǎ現(xiàn)實(shí)中的...
    梅落肩香閱讀 227評論 0 0
  • “有緣千里來相會谦趣,無緣對面不相逢”。這句名言家喻戶曉座每,讓人有種熟悉而又陌生的感覺前鹅。關(guān)于緣份,我們有很多種期待峭梳,也有...
    冬少爺閱讀 511評論 20 18