前言
略
分包
配置方法:app.json 文件
{
"pages": [
"pages/index/index",
...
],
"subpackages": [
{
"root": "package1",
"name": "pack1",
"pages": [
"pages/ChangeFace/ChangeFace",
"pages/SmartCover/SmartCover"
]
},
{
"root": "package2",
"name": "pack2",
"pages": [
"pages/NovemberActivity/NovemberActivity"
],
"independent": true
}
],
...
}
- subPackages 节点:声明分包结构
- subPackages 节点下的 root 节点:相对于根目录存放,比如“/package1”、“/package2”。
- subPackages 节点下的 name 节点:分包别名
- subPackages 节点下的 pages 节点:前分包下所有页面。相对
subPackages 节点下的 root 节点 存放路径 - subPackages 节点下的 independent 节点:设置为独立分包
独立分包
独立分包可以独立于主包和其他分包而单独运行。
分包预下载
{
"pages": [
"pages/index/index",
...
],
"subpackages": [
{
"root": "package1",
"name": "pack1",
"pages": [
"pages/index/index",
"pages/list/list"
]
},
{
"root": "package2",
"name": "pack2",
"pages": [
"pages/index/index",
"pages/list/list"
],
"independent": true
}
],
"preloadRule": {
"pages/index/index": {
"network": "all",
"packages": ["package1", "pack2"]
}
...
}
- preloadRule 节点:声明预加载内容
- preloadRule 节点下的页面路径:声明触发预加载机制的页面。在其节点下声明哪些分包需要预加载。
- preloadRule 节点下的 network 节点:只有 WiFi / all 选项
- preloadRule 节点下的 packages 节点:需要预加载的分包 – 填写路径或者名字(name)都可以,因为都具有唯一性。如:package1为(root)路径, pack2 为(name)名字
tabBar页面需要使用分包内的页面时该如何解决?
tabBar页面必须使用主包内的页面,不能使用分包内的页面。那该怎么办?
办法1:使用reLaunch跳转
使用自定义的tabbar,然后使用navigateTo 打开页面。
wx.navigateTo({
url: '/package1/pages/index/index'
})
办法2:
在主包中重写该页面。
参考
微信小程序 分包:普通分包 + 独立分包 小程序independent
|