模組化——AMD、CMD、CommonJs
阿新 • • 發佈:2019-02-20
模組化是指將一個複雜問題,依照一種分類的思維把問題進行系統性的分解處理。使得系統成為“高內聚,低耦合”的模組組成,讓管理,開發,維護變得“有理可循”。
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就行,也不用引入其他包
資料: