js模塊化編程

前言:以前在項目中用過require.js,可是因爲趕進度,整個架子又是別人搭建的,沒有具體的去理解模塊化變成究竟是怎麼一回事,如今趁着有空好好的理解記錄下java

1.首先,爲何使用模塊化編程?編程

爲方便文件管理、增長複用,咱們須要細化JS文件,每一個文件負責單一職能,稱之爲模塊,明確每一個文件的職能,當交互功能較複雜時,引用的文件也越加龐大,此時咱們就須要模塊化管理。瀏覽器

2.模塊化編程的規範及實現異步

模塊化編程目前存在兩種規範,一種是服務端的CommonJS,另外一種是客戶端的AMDide

2.1.CommonJS模塊化

是一種規範,相似java中的interface函數

 

require - 用來引入依賴requirejs

export - 用來導出模塊,包括標識符(identifier)和模塊內容(contents)ui

問題在於CommonJS的這個Modules規範設計之初是爲了server端設計的,它是一個同步的模式。可是這種模式並不適合於瀏覽器端,你們設想一下若是瀏覽器同步模式一個一個加載模塊,那麼打開將會變得很是的慢。設計

2.2.AMD

是"Asynchronous Module Definition"的縮寫,意思就是"異步模塊定義",是CommonJS的一種實現,它最大的特色就是能夠異步的方式加載模塊,具體的不一樣在於AMD有一個define函數,它可讓當前模塊運行時先加載當前模塊所依賴的模塊

define(['dep1','dep2'],function(dep1,dep2){

     //內部只能使用制定的模塊

      return function(){};

});

2.3.CMD

也是CommonJS的一種實現理念爲須要時再執行,即按需加載

define(function(require,exports,module){

   //此處若是須要某XX模塊,能夠引入

   var xx=require('XX');

});

3.require.js

實際上require.js實現了AMD與CMD。項目中大多使用這個。具體怎麼用就很少說了

http://www.requirejs.cn/

相關文章
相關標籤/搜索