AMD_CMD_RequireJS

1.為什么要使用模塊化?

如今CPU、瀏覽器性能得到了極大的提升,很多頁(yè)面邏輯遷移到了客戶端(表單驗(yàn)證等),隨著web2.0時(shí)代的到來(lái),Ajax技術(shù)得到廣泛應(yīng)用,jQuery等前端庫(kù)層出不窮,前端代碼日益膨脹。
這時(shí)候JavaScript作為嵌入式的腳本語(yǔ)言的定位動(dòng)搖了,JavaScript卻沒(méi)有為組織代碼提供任何明顯幫助,甚至沒(méi)有類的概念,更不用說(shuō)模塊(module)了,JavaScript極其簡(jiǎn)單的代碼組織規(guī)范不足以駕馭如此龐大規(guī)模的代碼

模塊化優(yōu)點(diǎn)

  • 解決命名沖突,各模塊內(nèi)部變量,無(wú)法被其他模塊讀?。ㄈ肿兞砍猓?。
  • 依賴管理
  • 提高代碼可讀性
  • 代碼解耦,提高復(fù)用性

2.CMD、AMD、CommonJS 規(guī)范分別指什么?有哪些應(yīng)用

CMD:通用模塊定義(Common Module Definition)
應(yīng)用:SeaJS

// 定義模塊  myModule.js
define(function(require, exports, module) {
  var $ = require('jquery.js')
  $('div').addClass('active');
});
// 加載模塊
seajs.use(['myModule.js'], function(my){
});

AMD:異步模塊定義(Asynchronous Module Definition)
應(yīng)用:RequireJS

// 定義模塊  myModule.js
define(['jquery'], function($){   //引入jquery
   function Button($ct){
       this.$ct = $ct
       this.bind()
   }
   Button.prototype = {
       bind: function(){
           this.$ct.click(function(){
               $('.box').css({'background': 'red'})
           })
       }
   }
   return Button    //一定要return出去
})
// 加載模塊
require(['jquery', 'app/myModule'],function($, Button){
   new Button($('.button'))  //構(gòu)造函數(shù)實(shí)例化
})

CommonJS:CommonJS 擴(kuò)展了JavaScript聲明模塊的API.
CommonJS模塊可以很方便得將某個(gè)對(duì)象導(dǎo)出,讓他們能夠被其他模塊通過(guò) require 語(yǔ)句來(lái)引入。通過(guò)CommonJS,每個(gè)JS文件獨(dú)立地存儲(chǔ)它模塊的內(nèi)容(就像一個(gè)被括起來(lái)的閉包一樣)。主要應(yīng)用node.js

3.使用 requirejs 完善入門(mén)任務(wù)15。

預(yù)覽鏈接
代碼地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目1: 為什么要使用模塊化? 模塊的由來(lái):嵌入網(wǎng)頁(yè)的JS代碼越來(lái)越龐大,越來(lái)越像桌面程序,需要一個(gè)團(tuán)隊(duì)去分工協(xié)作...
    蕭雪圣閱讀 320評(píng)論 0 0
  • 為什么要使用模塊化? 最主要的目的:解決命名沖突依賴管理 其他價(jià)值提高代碼可讀性代碼解耦,提高復(fù)用性 CMD、AM...
    Eazer閱讀 767評(píng)論 3 1
  • 題目1:為什么要使用模塊化? 最主要的目的:解決命名沖突依賴管理其他價(jià)值提高代碼可讀性代碼解耦,提高復(fù)用性 在Ja...
    無(wú)目的閱讀 433評(píng)論 0 0
  • 題目1: 為什么要使用模塊化? 在JavaScript發(fā)展初期就是為了實(shí)現(xiàn)簡(jiǎn)單的頁(yè)面交互邏輯,寥寥數(shù)語(yǔ)即可;如今C...
    南山碼農(nóng)閱讀 246評(píng)論 0 0
  • ?牽著蝸牛去散步?讀后感悟:我身邊有很多的蝸牛在緩慢地行走。我的孩子是蝸牛,我總是感覺(jué)他學(xué)習(xí)時(shí)不夠?qū)W?,討厭他的?..
    青的美好時(shí)光閱讀 309評(píng)論 3 5

友情鏈接更多精彩內(nèi)容