分包预下载
收藏我的收藏
开发者可以通过配置,在进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度。对于独立分包,也可以预下载主包。
分包预下载目前只支持通过配置方式使用,不支持通过调用 API 完成。
使用方法
预下载分包行为在进入某个页面时触发,通过在 app.json 增加
preloadRule
配置来控制。{ "pages": ["pages/index", "pages/logs"], "subpackages": [ { "root": "packageA", "pages": ["pages/pageOne", "pages/pageTwo"] }, { "root": "packageB", "name": "pack2", "pages": ["pages/pageThree", "pages/pageFour"] } ], "preloadRule": { "pages/index": { "network": "all", "packages": ["packageA"] }, "pages/logs": { "network": "wifi", "packages": ["pack2"] }, "packageB/pages/pageThree": { "network": "wifi", "packages": ["__APP__"] } } }
preloadRule
中,key
是页面路径,value
是进入此页面的预下载配置,每个配置有以下几项:字段 | 类型 | 必填 | 默认值 | 说明 |
packages | array | 是 | 无 | 进入页面后预下载分包的 root 或 name,root 或 name 必须严格等于 subpackages 中配置的 root 或 name, 否则不会生效。 __APP__ 表示主包。 |
network | string | 否 | wifi | 在指定网络下预下载,可选值为:wifi 和 all, all 表示不限网络,wifi 表示仅 wifi 下预下载 |
限制
同一个分包中的页面享有共同的预下载大小限额 2M,限额会在工具中打包时校验。
如,页面 A 和 B 都在同一个分包中,A 中预下载总大小 0.5M 的分包,B 中最多只能预下载总大小 1.5M 的分包。