小程序分包
1.常规分包
1. 开发者通过在app.json subpackages字段声明项目分包结构
2. 特点:
a) 加载小程序的时候先加载主包,当需要访问分包的页面时候才加载分包内容
b) 分包的页面可以访问主包的文件,数据,图片等资源
c) 主包
i 主要来源 除了分包以外的内容都会被打到主包中
ii 通常放置启动页tabbar页面
3.什么可以放在主包呢?
首次需要加载的页面需要放在主包,其他的都可以分包
例如 项目的结构是这样的 packageA和packageB都是分包 pages是主包
需要在 app.json文件中
分包的配置
如果pages:[] 主包里面也写分包路径的话,会报错,主包不需要再写分包的路径
这样就算分包完成了
2.独立分包
1. 设置independent 为true
2.特点:
a) 独立分包可单独访问分包的内容, 不需要下载主包
b) 独立分包不能依赖主包或者其他的内容
3.使用场景
a) 通常某些页面和当前小程序的其他页面关联不大的时候可独立进行
b) 如: 临时加的广告页 或者 活动页
"subpackages": [
{
"root": "packageB",
"name":"root",
"pages": [
"pages/apple",
"pages/banana"
],
"independent": true
}
],
3.分包预下载
1. 配置
a) app.json 中配置 perloadRule选项
b) key(页面路径):{packages:{预下载的报名 || 预下载的包的根路径}}
例如:
当你在 加载 pages/index/index的时候 预加载packageA
"subpackages": [
{
"root": "packageA",
"pages": [
"pages/cat",
"pages/dog"
]
}, {
"root": "packageB",
"name":"root",
"pages": [
"pages/apple",
"pages/banana"
],
"independent": true
}
],
"preloadRule":{
"pages/index/index":{
"packages":["packageA","root"]
}
}
2. 什么时候packages的值会是_APP_呢?
在独立分包的情况下需要预加载主包