一、 服務(wù)器端模塊化規(guī)范
二、瀏覽器端模塊化規(guī)范
- AMD
- RequireJS
- CMD
- SeaJS
- commonjs
- node.js
- 區(qū)別
- 對(duì)于依賴的模塊,AMD提前執(zhí)行,CMD延遲執(zhí)行
- CMD推崇依賴就近,AMD推崇依賴前置
- AMD的API默認(rèn)一個(gè)當(dāng)多個(gè)用,CMD的API嚴(yán)格區(qū)分,職責(zé)單一
- 還有一些細(xì)節(jié)的差異,具體看規(guī)范
三、SeaJS
3.1、 基本使用
3.2、整體感知
3.3、定義模塊 define
- 定義模塊 define(function(require, exports, module){})
- 函數(shù)體內(nèi)的方法屬性都屬于這個(gè)方法,對(duì)外有封裝性;解決了命名沖突問題,使js代碼有了封裝性
- 直接調(diào)用 jQuery 插件等非標(biāo)準(zhǔn)模塊的方法 http://my.oschina.net/briviowang/blog/208587
3.4、啟動(dòng)模塊 seajs.use
- 加載入口模塊,我們把define定義的js就叫模塊
- 這個(gè)用于在html代碼里面的加載
3.5、加載模塊 require
-加載文件依賴、模塊依賴的,用于define函數(shù)體內(nèi)
3.6 暴露接口 exports 和 module.exports
- module.exports曝露出一個(gè)完整的對(duì)象,只能扔一次只能曝露出來一個(gè)
- exports是module.exports的別名,可以用來單個(gè)屬性、方法、對(duì)象的曝露,用.的形式,exports能做的事情module.exports也可以做
- 使用場景用.屬性的形式曝露屬性和方法的時(shí)候,而且是多個(gè)的時(shí)候用exports
- module.exports直接等于的方式用,直接等于一個(gè)方法屬性對(duì)象等等~~~
3.7、requirejs
與seajs的區(qū)別
requirejs是優(yōu)先加載的
seajs是懶加載的,就是有拖延癥,用的時(shí)候才加載
http://www.requirejs.cn/