You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

小程序开发中onload()与Onshow()有什么区别?每次进页面刷新选Onshow()吗?

小程序页面生命周期常见问题解答

1. onLoad() 与 onShow() 的核心区别

  • 触发时机与次数不同
    onLoad() 仅在页面首次创建加载时触发1次,页面未被销毁的前提下(比如仅压入页面栈、退到后台),再次回到该页面不会重新执行。
    onShow() 只要页面被展示到前台视口就会触发,页面生命周期内可多次执行:首次加载、从后台切回、从下级页面返回、解锁屏幕回到页面等场景都会触发。
  • 可用能力不同
    页面跳转携带的query参数仅能在onLoad()的回调入参中获取,onShow()没有原生的跳转参数接收能力。
  • 适用场景不同
    onLoad()适合放置仅需执行一次的初始化逻辑,比如页面基础结构渲染、静态资源预加载、永久缓存读取等。
    onShow()适合放置需要随页面展示动态更新的逻辑。

2. 每次进入页面触发刷新是否应该选择onShow()

大部分场景下该选择是合理的,但需要注意两个使用限制:

  • 若刷新逻辑依赖页面跳转传入的query参数,需要先在onLoad()阶段将参数存储到页面实例、全局状态或本地缓存中,onShow()执行时读取存储的参数即可,不要尝试直接在onShow()中拿跳转参数。
  • 若刷新逻辑开销较高(如批量接口请求、大量DOM重渲染),建议增加触发条件判断:比如仅当下级页面操作会修改当前页数据时才执行刷新,或者增加节流逻辑,避免无意义的性能消耗。

以上逻辑适用于微信/支付宝等主流原生小程序,以及uni-app、Taro等跨端小程序框架的页面生命周期规则。

内容的提问来源于stack exchange,提问作者Willayuyu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 09:24:04