AMD_CMD_RequireJS

為什么要使用模塊化?

最主要的目的:

  • 解決命名沖突
  • 依賴管理

其他價值:

  • 提高代碼可讀性
  • 代碼解耦,提高復用性

CMD、AMD、CommonJS 規范分別指什么?有哪些應用

  • CMD規范:
    CMD 即Common Module Definition通用模塊定義,CMD規范是國內發展出來的,就像AMD有個requireJS,CMD有個瀏覽器的實現SeaJS,SeaJS要解決的問題和requireJS一樣,只不過在模塊定義方式和模塊加載(可以說運行、解析)時機上有所不同。

    // 定義模塊 myModule.js
    define(function(require, exports, module) {
    var $ = require('jquery.js')
    $('div').addClass('active');
    });

    // 加載模塊
    seajs.use(['myModule.js'], function(my){

    });

  • AMD規范:
    AMD 即Asynchronous Module Definition,中文名是異步模塊定義的意思。它是一個在瀏覽器端模塊化開發的規范;
    由于不是JavaScript原生支持,使用AMD規范進行頁面開發需要用到對應的庫函數,也就是大名鼎鼎RequireJS,實際上AMD 是 RequireJS 在推廣過程中對模塊定義的規范化的產出。

    // 定義模塊 myModule.js
    define(['dependency'], function(){
      var name = 'Byron';
      function printName(){
        console.log(name);
    }
        return {
        printName: printName
      };
    });
    

    // 加載模塊
    require(['myModule'], function (my){
      my.printName(); });

  • CommonJS規范:

    1、定義模塊:根據CommonJS規范,一個單獨的文件就是一個模塊。每一個模塊都是一個單獨的作用域,也就是說,在該模塊內部定義的變量,無法被其他模塊讀取,除非定義為global對象的屬性
    2、模塊輸出: 模塊只有一個出口,module.exports對象,我們需要把模塊希望輸出的內容放入該對象
    3、加載模塊: 加載模塊使用require方法,該方法讀取一個文件并執行,返回文件內部的module.exports對象

     //模塊定義 myModel.js
    
     var name = 'Byron';
    
     function printName(){
       console.log(name);
     }
    
     function printFullName(firstName){
       console.log(firstName + name);
     }
    
     module.exports = {
       printName: printName,
       printFullName: printFullName
       }
    
     //加載模塊
    
     var nameModule = require('./myModel.js');
    
     nameModule.printName();
    

使用 requirejs 完善入門任務15,包括如下功能:

 1. 首屏大圖為全屏輪播
 2. 有回到頂部功能
 3. 圖片區使用瀑布流布局(圖片高度不一),下部有加載更多按鈕,點擊加載更多會  加載更多數據(數據在后端 mock)
 4(可選).  使用 r.js 打包應用

代碼: https://github.com/nciilin/trsk/tree/master/%E9%AB%98%E7%BA%A74

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 為什么要使用模塊化? 最主要的目的:解決命名沖突依賴管理 其他價值提高代碼可讀性代碼解耦,提高復用性 CMD、AM...
    Eazer閱讀 693評論 3 1
  • 1. 為什么要使用模塊化? 背景:如今CPU、瀏覽器性能得到了極大的提升,很多頁面邏輯遷移到了客戶端(表單驗證等)...
    _李祺閱讀 435評論 0 0
  • 題目1: 為什么要使用模塊化? 最主要的目的:解決命名沖突依賴管理 其他價值:提高代碼可讀性代碼解耦,提高復用性 ...
    Taaaaaaaurus閱讀 151評論 0 0
  • 題目1: 為什么要使用模塊化? 模塊的由來:嵌入網頁的JS代碼越來越龐大,越來越像桌面程序,需要一個團隊去分工協作...
    蕭雪圣閱讀 286評論 0 0
  • 興奮! 激動! 巍山旅游路線設計大賽 經過一個禮拜漫長的等待 終于從明天就可以開始報名了! 大家一定要根據上一篇的...
    易指云途閱讀 150評論 0 0