lazyCodeLoading踩坑记录
lazyCodeLoading
基础库 2.11.1 及以上版本支持,2.11.1 以下兼容但无优化效果
通常情况下,在小程序启动期间,所有页面及自定义组件的代码都会进行注入,当前页面没有使用到的自定义组件和页面在注入后其实并没有被使用。
自基础库版本 2.11.1 起,小程序支持有选择地注入必要的代码,以降低小程序的启动时间和运行时内存。
{
"lazyCodeLoading": "requiredComponents"
}
启用组件懒注入后,小程序性能确实得到了一定提升,速度快了很多,但是却遇到一个奇葩的问题,有个确认支付页面打不开了。
经核查,原因是这样的,app.json中没注册该页面路由(我们的页面路由是自动生成的,这个确认支付页面开发者命名不规范,没有自动生成,一言难尽,这里不多说了…)。
关于路由注册,微信小程序内部机制采用了2套标准:
- 不使用lazyCodeLoading,不抛错,可以正常访问;
- 使用lazyCodeLoading,报错:“页面不存在”
最终解决方案,修改路由生成规则,兼容遗漏的这个支付页面的路由。