1. 程式人生 > >模組化——AMD、CMD、CommonJs

模組化——AMD、CMD、CommonJs

模組化是指將一個複雜問題,依照一種分類的思維把問題進行系統性的分解處理。使得系統成為“高內聚,低耦合”的模組組成,讓管理,開發,維護變得“有理可循”

RequireJS 、Sea.js、CommonJs都是模組載入器 ,倡導模組化開發理念

AMD——Asynchronous Module Definition(非同步模組定義)

  • RequireJS 遵循 AMD(非同步模組定義)規範。

  • AMD推崇依賴前置 ,在解析和執行當前模組之前指明所有依賴模組

    define(['./a','./b'],function(a,b){
     a.doSomething()
     b.doSomething()
    }) 
  • 無需遍歷整個函式體找到它的依賴,因此效能有所提升,缺點就是開發者必須顯式得指明依賴,這會使得開發工作量變大。

  • <script>標籤引入RequireJs

CMD——Common Module Definition(通用模組定義)

  • SeaJs 遵循 CMD 規範。

  • CMD推崇依賴就近 ,可以把依賴寫進你的程式碼中的任意一行

    define(function(require, exports, module) {
    var a = require('./a')
    a.doSomething()
    var b = require('./b')
    b.doSomething()
    })
  • 程式碼在執行時,首先是不知道依賴的,需要遍歷所有的require關鍵字,這是一種犧牲效能來換取更多開發便利的方法。

  • <script>標籤引入SeaJs

CmmonJs

  • Node.js遵循CommonJs規範。
  • 因為nodeJs就是它的實現,所以使用node就行,也不用引入其他包

資料: