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

相关推荐
HERR_QQ4 小时前
【unify】unify的微信小程序开发学习 (to be continued)
学习·微信小程序·小程序
racerun12 小时前
小程序导航设置更多内容的实现方法
小程序
说私域12 小时前
基于开源AI智能名片链动2+1模式S2B2C商城小程序的超级文化符号构建路径研究
人工智能·小程序·开源
mg66812 小时前
微信小程序入门实例_____快速搭建一个快递查询小程序
微信小程序·小程序
The_era_achievs_hero17 小时前
微信小程序41~50
微信小程序·小程序
走,带你去玩1 天前
uniapp 微信小程序水印
微信小程序·小程序·uni-app
CC同学呀1 天前
从0到100:单位订餐统计小程序开发日记2025
小程序
666HZ6662 天前
微信小程序中scss、ts、wxml
微信小程序·小程序·scss
二十十十十十2 天前
微信点餐小程序—美食物
微信·小程序