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 只会在页面初次加载时触发。

相关推荐
2601_9537208219 小时前
【计算机毕业设计】基于微信小程序的拼车服务系统设计与实现
微信小程序·小程序·课程设计
乐启国际旅行社有限公司20 小时前
文旅小程序性能优化:分包加载+地图视口懒加载解决景区卡顿与包超限
性能优化·小程序
万岳科技系统开发1 天前
校园跑腿外卖搭建助力高校周边商家拓展线上业务
大数据·人工智能·小程序
微三云 - 廖会灵 (私域系统开发)2 天前
消费返物业费平台搭建:美家时代商业模式拆解与系统开发选型指南
小程序·系统架构
greenbbLV2 天前
中小公司积分商城选型:SaaS与私有化方案对比解析
大数据·前端·小程序
2501_915909063 天前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张3 天前
iOS加固技术路线全面解析:Bitcode模式、源码模式与汇编模式对比及爱加密优势
android·汇编·ios·小程序·uni-app·cocoa·iphone
海纳百川·纳海川3 天前
租房行业数字化:换个思路解决“老问题”
大数据·微信小程序·小程序
上海云盾-小余4 天前
CC 高频请求 + DDoS 流量攻击实战防御:全链路 WAF 流量清洗部署完整流程
网络·爬虫·安全·小程序·ddos
2501_916008894 天前
iOS IPA文件反编译与打包操作方法,拆包分析防护和加固打包
android·macos·ios·小程序·uni-app·cocoa·iphone