CommonJs、AMD、CMD

 

1、CommonJS前端


CommonJS就是爲js的表現指定的規範,nodeJS是這一規範的其中一種實現。由於js沒有模塊的功能因此CommonJS應運而生,它但願js能夠在任何地方運行,不僅是瀏覽器。node

node,commonJS,瀏覽器以及W3C之間有什麼關係:jquery

CommonJS定義的模塊分爲:後端

  • 模塊引用:require
  • 模塊定義:exports
  • 模塊標識:module

require()用來引入外部模塊;exports對象用於導出當前模塊的方法或變量,惟一的導出口;module對象就表明模塊自己。瀏覽器

 

2、AMD服務器


CommonJS是主要爲了js在後端的表現指定的,他是不適合前端的,爲何這麼說呢?由於服務器端js的執行大多依賴服務器系統的本地資源(如:CPU、內存、磁盤),而瀏覽器端js大部分依賴於網絡。因而,AMD(異步模塊定義)出現了,它主要就是爲前端js的表現指定規範。網絡


AMD就只有一個接口:define異步


RequireJS就是這一規範的實現,如下是requireJS定義模塊的代碼:ui

define(['jquery', 'otherModule'], function($, otherModule) { var $select = $('#select'); });

 

若是沒有什麼依賴,下面這樣寫也能夠:spa

define(function() { console.log('hello world'); });

 

3、CMD


  大牛玉伯寫的seaJS就是遵循CMD規範的實現,與AMD不一樣的是,他採用的是按需加載模塊的思想,這在移動端用的比較多,由於它比AMD加載方式更節約流量。

相關文章
相關標籤/搜索