大部分小程序都會(huì)由某幾個(gè)功能組成,通常這幾個(gè)功能之間是獨(dú)立的,但會(huì)依賴一些公共的邏輯,并且這些功能通常會(huì)對(duì)應(yīng)某幾個(gè)獨(dú)立的頁(yè)面。那么小程序代碼的打包,大可不必一定要打成一個(gè),可以按照功能的劃分,拆分成幾個(gè)分包,當(dāng)需要用到某個(gè)功能時(shí),才加載這個(gè)功能對(duì)應(yīng)的分包。
一:分包加載的順序
????對(duì)于用戶來(lái)說(shuō),小程序加載流程變成了:
????1.首次啟動(dòng)時(shí),先下載小程序主包,顯示主包內(nèi)的頁(yè)面;
????2.如果用戶進(jìn)入了某個(gè)分包的頁(yè)面,再下載這個(gè)對(duì)應(yīng)分包,下載完畢后,顯示分包的頁(yè)面。
二:優(yōu)點(diǎn)
????采用分包加載,對(duì)開發(fā)者而言,能使小程序有更大的代碼體積,承載更多的功能與服務(wù);
????而對(duì)用戶而言,可以更快地打開小程序,同時(shí)在不影響啟動(dòng)速度前提下使用更多功能
三:分包的規(guī)劃
? ??開發(fā)者按照功能劃分的的原則,將同一個(gè)功能下的頁(yè)面和邏輯放置于同一個(gè)目錄下,對(duì)于一些跨功能之間公共邏輯,將其放置于主包下。
? ? 這樣規(guī)劃的目的可以確保在分包引用這部分功能時(shí),這部分的邏輯一定存在
四:分包規(guī)劃注意事項(xiàng)
? ??1.避免分包與分包之間引用上的耦合。因?yàn)榉职募虞d是由用戶操作觸發(fā)的,并不能確保某分包加載時(shí),另外一個(gè)分包就一定存在,這個(gè)時(shí)候可能會(huì)導(dǎo)致 JS 邏輯異常的情況,例如報(bào)「"xxx.js" is not defined」這樣的錯(cuò)誤;
????2.一些公共用到的自定義組件,需要放在主包內(nèi)。
五:分包配置示例? ?
六:微信版本對(duì)分包加載的兼容性處理
????????微信 6.6.0 版本開始支持分包加載,而對(duì)于低于這個(gè)版本的客戶端,我們做了兼容處理,開發(fā)者不需要對(duì)老版本微信客戶端做兼容。
? ? ? ? ?對(duì)于老版本的客戶端,編譯后臺(tái)會(huì)將所有的分包打包成一個(gè)整包,老版本的客戶端依然按照整包的方式進(jìn)行加載。所以在老版本的微信客戶端下,是依然采取整包加載的方式加載的,建議開發(fā)者盡量控制代碼包的大小。
七:目前小程序分包大小的限制
????????整個(gè)小程序所有分包大小不超過(guò) 4M
????????單個(gè)分包/主包大小不能超過(guò) 2M
: