# 页面切换优化

# 1. 避免在 onHide/onUnload 执行耗时操作

页面切换时,会先调用前一个页面的 onHide 或 onUnload 生命周期,然后再进行新页面的创建和渲染。如果 onHide 和 onUnload 执行过久,可能导致页面切换的延迟。

  • ✅ onHide/onUnload 中的逻辑应尽量简单,若必须要进行部分复杂逻辑,可以考虑用 setTimeout 延迟进行。
  • ❌ 减少或避免在 onHide/onUnload 中执行耗时逻辑,如同步接口调用、setData 等。

# 2. 首屏渲染优化

页面首屏渲染是页面切换耗时的重要组成部分,优化手段可以参考启动性能优化中首屏渲染优化部分。

# 3. 提前发起数据请求

在一些对性能要求比较高的场景下,当使用 JSAPI 进行页面跳转时(例如 wx.navigateTo),可以提前为下一个页面做一些准备工作。页面之间可以通过 EventChannel 进行通信。

例如,在页面跳转时,可以同时发起下一个页面的数据请求,而不需要等到页面 onLoad 时再进行,从而可以让用户更早的看到页面内容。尤其是在跳转到分包页面时,从发起页面跳转到页面 onLoad 之间可能有较长的时间间隔,可以加以利用。