小程序-分包加载
某些情況下,開(kāi)發(fā)者需要將小程序劃分成不同的子包,在構(gòu)建時(shí)打包成不同的分包,用戶在使用時(shí)按需進(jìn)行加載。
在構(gòu)建小程序分包項(xiàng)目時(shí),構(gòu)建會(huì)輸出一個(gè)或多個(gè)分包。每個(gè)使用分包小程序必定含有一個(gè)主包。所謂的主包,即放置默認(rèn)啟動(dòng)頁(yè)面/TabBar 頁(yè)面,以及一些所有分包都需用到公共資源/JS 腳本;而分包則是根據(jù)開(kāi)發(fā)者的配置進(jìn)行劃分。
在小程序啟動(dòng)時(shí),默認(rèn)會(huì)下載主包并啟動(dòng)主包內(nèi)頁(yè)面,當(dāng)用戶用戶進(jìn)入分包內(nèi)某個(gè)頁(yè)面時(shí),客戶端會(huì)把對(duì)應(yīng)分包下載下來(lái),下載完成后再進(jìn)行展示。
目前小程序分包大小有以下限制:
- 整個(gè)小程序所有分包大小不超過(guò) 8M
- 單個(gè)分包/主包大小不能超過(guò) 2M
優(yōu)點(diǎn)
- 用戶在使用時(shí)按需進(jìn)行加載
- 可以優(yōu)化小程序首次啟動(dòng)的下載時(shí)間
- 進(jìn)入主包頁(yè)面時(shí),需要下載的代碼量小了很多,白屏?xí)r間更短,體驗(yàn)更佳
- 在多團(tuán)隊(duì)共同開(kāi)發(fā)時(shí)可以更好的解耦協(xié)作
關(guān)于主包
- 第一次進(jìn)入小程序,默認(rèn)下載主包代碼
- 首頁(yè)的 默認(rèn)啟動(dòng)頁(yè)面/TabBar 頁(yè)面必須在 app(主包)內(nèi)
- 分包以外的所有代碼,都會(huì)被打入主包
- 分包內(nèi)代碼可以引用主包內(nèi)代碼
關(guān)于分包
- 因?yàn)榇嬖谫Y源依賴關(guān)系,微信的機(jī)制是先下載主包,后下載分包
- 分包目錄不能在主包目錄下面
- 分包可以引用自己包內(nèi)、主包內(nèi)的資源,不能引用其他分包內(nèi)的資源
使用方法
支持分包的小程序目錄結(jié)構(gòu)如下:
├── app.js ├── app.json ├── app.wxss ├── packageA │ └── pages │ ├── cat │ └── dog ├── packageB │ └── pages │ ├── apple │ └── banana ├── pages │ ├── index │ └── logs └── utils開(kāi)發(fā)者通過(guò)在 app.json subPackages 字段聲明項(xiàng)目分包結(jié)構(gòu):
{"pages":["pages/index","pages/logs"],"subPackages": [{"root": "packageA","pages": ["pages/cat","pages/dog"]}, {"root": "packageB","pages": ["pages/apple","pages/banana"]}] }api地址
https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/basic.html
總結(jié)
- 上一篇: vue 引入swiper4,在有些手机D
- 下一篇: cross-env使用