課程標(biāo)題 波比-模塊化
課程目標(biāo)
知識(shí)點(diǎn)
- 什么是模塊化 ——本質(zhì):所有的變量封裝在一個(gè)函數(shù)细溅,通過一個(gè)接口暴露出希望暴露出來的內(nèi)容。
- 為什么要用模塊化——a. 關(guān)注分離 b. 區(qū)分模塊粒度 c. 更優(yōu)雅的代碼管理逐抑、高內(nèi)聚
- code-spliting 按需加載 promise來實(shí)現(xiàn)
- 目前主要的模塊規(guī)范有AMD,CMD和es6 module
AMD (依賴前置)
對(duì)應(yīng)的主要js庫有 require.js莱革, curl.js
- require的時(shí)候加載了依賴的模塊果录,首先加載全部模塊
- 通過promise實(shí)現(xiàn)異步加載模塊
- 沒有實(shí)現(xiàn)按需加載
CMD (按需加載)
對(duì)應(yīng)的js庫有Sea.js
- 按需加載,依賴后置妨马,在require的地方才去加載對(duì)應(yīng)的部分挺举。
COMMON JS
- 文件是一個(gè)模塊杀赢,私有,內(nèi)置兩個(gè)變量module湘纵, require (exports = module.exports)
一個(gè)引入一個(gè)導(dǎo)出就構(gòu)成了通信的基本結(jié)構(gòu) - 緩存脂崔,require會(huì)緩存一下,多次require可能及后續(xù)修改都是同一個(gè)地方的引用梧喷。
- 引用拷貝還是值拷貝砌左,CMJ是值拷貝
- 運(yùn)行時(shí)加載,同步加載
- 循環(huán)引用
ES moudule
- ESM是運(yùn)行時(shí)綁定铺敌,類似引用拷貝
- 異步加載