分包加载
- 在小程序启动时,默认会下载主包并启动主包内页面
- 进入分包页面时,再加载对应分包
- 小程序中必须有一个主包
分包配置:app.json subpackages 字段声明
代码片段
{
"pages":[
"pages/index",
"pages/logs"
],
"subpackages": [
{
"root": "packageA",//分包根目录
"pages": [
"pages/cat",
"pages/dog"
]
}, {
"root": "packageB",
"name": "pack2",//分包别名,分包预下载时可以使用
"pages": [//分包页面路径,相对与分包根目录
"pages/apple",
"pages/banana"
],
"independent":true,//分包是否是独立分包
}
]
}
普通分包
- 整个小程序所有分包大小不超过 8M
- 单个分包/主包大小不能超过 2M
- 主包包含默认启动页面以及分包需要的公共资源
- 分包需要开发者自行配置,分包可引用主包及本包资源,不可调用其他分包的资源
独立分包
- 分包不能依赖主包和其他分包的内容,包括js文件、template、wxss、自定义组件、插件等
- 主包中app.wxss对独立分包无效
- 独立分包中暂时不支持使用插件
分包预下载
- 进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度。
配置方法:app.json 增加preloadRule 字段
总结
优点
- 打破了小程序2M的限制
- 提升启动速度
- 团队解耦协作
缺点 (针对老项目)
- 分包之后,路径会发生变化,需要每个页面检索路径,很耗时间
- 涉及依赖问题,需要重新梳理目录结构