onLoad 生命周期函数是否执行取决于跳转的方式和小程序的页面栈管理机制

文章目录

      • [1. 页面跳转方式](#1. 页面跳转方式)
      • [2. 你的场景分析](#2. 你的场景分析)
      • [3. 页面生命周期](#3. 页面生命周期)
      • [4. 总结](#4. 总结)
      • [5. 建议](#5. 建议)

在微信小程序中,页面跳转时, onLoad 生命周期函数是否执行取决于跳转的方式和小程序的页面栈管理机制。以下是详细说明:


1. 页面跳转方式

微信小程序提供了多种页面跳转方式,不同的跳转方式会影响页面生命周期的触发:

跳转方式 描述 onLoad 是否执行
wx.navigateTo 保留当前页面,跳转到新页面(页面栈增加一层) 是 ,新页面会触发 onLoad
wx.redirectTo 关闭当前页面,跳转到新页面(页面栈替换) 是 ,新页面会触发 onLoad
wx.switchTab 跳转到 tabBar 页面,关闭其他所有非 tabBar 页面 否 ,tabBar 页面不会触发 onLoad
wx.reLaunch 关闭所有页面,打开新页面 是 ,新页面会触发 onLoad
wx.navigateBack 返回上一个页面(页面栈减少一层) 否 ,返回的页面不会触发 onLoad

2. 你的场景分析

你在小程序中从产品页 跳转到我的页面,然后又跳转回来。根据你的描述,可能的情况是:

  • 如果你使用的是 wx.navigateTo:

    • 每次跳转到新页面时,新页面的 onLoad 都会执行。
    • 返回时(使用 wx.navigateBack),返回的页面不会触发 onLoad,而是触发 onShow。
  • 如果你使用的是 wx.switchTab:

    • 跳转到 tabBar 页面(如"我的页面")时,不会触发 onLoad,而是触发 onShow。
    • 从 tabBar 页面返回时,也不会触发 onLoad。

3. 页面生命周期

微信小程序的页面生命周期包括以下关键函数:

  • onLoad:页面加载时触发,只会执行一次。
  • onShow:页面显示时触发,每次页面显示都会执行。
  • onReady:页面初次渲染完成时触发,只会执行一次。
  • onHide:页面隐藏时触发(跳转到其他页面时)。
  • onUnload:页面卸载时触发(页面被关闭时)。

4. 总结

  • 如果你使用的是 wx.navigateTo ,每次跳转到新页面时,onLoad 都会执行。
  • 如果你使用的是 wx.switchTab ,跳转到 tabBar 页面时,onLoad 不会执行,而是触发 onShow。
  • 如果你没有退出小程序,只是来回跳转页面,onLoad 是否执行取决于跳转方式。

5. 建议

如果你希望每次跳转到页面时都执行某些逻辑,可以将代码放在 onShow 中,而不是 onLoad。因为 onShow 在每次页面显示时都会触发,而 onLoad 只会在页面初次加载时触发。

相关推荐
小码哥0685 分钟前
陪诊小程序系统开发:开启医疗陪护新时代
小程序·陪诊·陪护·陪诊陪护·医院陪诊系统·陪诊系统·陪诊管理
扶风ff29 分钟前
练题簿在线免费刷题:创建个人任务,把刷题、听题和模考目标放到每天的学习中
开发语言·javascript·学习·小程序
andrsted3 小时前
练题簿在线免费刷题:听读练题支持暂停续播、循环播放,让自己的题库听得更方便
学习·微信小程序·小程序·刷题·在线刷题
weixin_422201301 天前
如何解决小程序图标点击热区小,落点不准问题?
前端·小程序·样式·点击热区·扩大
河北清兮网络科技1 天前
直播APP商用开发深度解析:为什么模板系统无法支撑规模化直播平台
运维·网络·人工智能·小程序·短剧app
Geek_Vison1 天前
政务APP新增鸿蒙客户端,如何复用已有的业务单元?
小程序·harmonyos·mpaas·政务·小程序容器
沐子a~1 天前
小程序实战:萌宠案例
小程序
火眼金睛记单词1 天前
零基础成人重拾英语:第一个月的30天行动地图
前端·经验分享·学习·小程序
xinraynet1 天前
沈阳企业小程序开发选型:五个可核验维度,附设备数据采集与私域商城的技术实现要点
大数据·科技·ai·微信小程序·小程序
小码哥0682 天前
Java医院陪诊系统陪护系统陪诊小程序,三端齐全可定制
大数据·小程序·陪诊陪护·陪诊小程序·陪护系统·陪诊系统·陪护小程序