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

devtools/2025/1/13 18:38:40/

文章目录

      • 1. 页面跳转方式
      • 2. 你的场景分析
      • 3. 页面生命周期
      • 4. 总结
      • 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 只会在页面初次加载时触发。

在这里插入图片描述


http://www.ppmy.cn/devtools/150209.html

相关文章

单元测试概述入门

引入 什么是测试?测试的阶段划分? 测试方法有哪些? 1.什么是单元测试? 单元测试:就是针对最小的功能单元(方法),编写测试代码对其正确性进行测试。 2.为什么要引入单元测试&#x…

蓝桥杯历届真题 #食堂(C++,Java)

这题没什么好说的 考虑所有情况然后写就完了 虽然赛场上 交完不知道答案(doge) 原题链接 #include<iostream>using namespace std;int main() {int n;cin >> n;//能优先安排6人桌,要先安排6人桌//6人桌可以是222 或者 33 或者42//优先用33组合,因为3人寝只能凑6人…

爬虫基础之爬取歌曲宝歌曲批量下载

声明&#xff1a;本案列仅供学习交流使用 任何用于非法用途均与本作者无关 需求分析: 网站:邓紫棋-mp3在线免费下载-歌曲宝-找歌就用歌曲宝-MP3音乐高品质在线免费下载 (gequbao.com) 爬取 歌曲名 歌曲 实现歌手名称下载所有歌曲 本案列所使用的模块 requests (发送…

红队工具使用全解析:揭开网络安全神秘面纱一角

红队工具使用全解析&#xff1a;揭开网络安全神秘面纱一角 B站红队公益课&#xff1a;https://space.bilibili.com/350329294 学习网盘资源链接&#xff1a;https://pan.quark.cn/s/4079487939e8 嘿&#xff0c;各位网络安全爱好者们&#xff01;在风云变幻的网络安全战场上&am…

pycharm 安装三方插件后,导致pycharm无法启动的解决方式

有时候有的插件安装后会导致pycahrm无法启动&#xff0c;这时候就需要删除相关的插件文件夹。 如图删除 相关的文件夹就可以了。 假设是你安装了csvditor来支持编辑csv文件查看&#xff0c;导致pycharm无法重启&#xff0c;那么你就删除csvditor这个文件夹就可以了。 具体的插件…

单片机Day1

目录 一.什么是单片机&#xff1f; 二.单片机的组成 三.封装形式 四.优势 五.分类 通用型&#xff1a; 专用型&#xff1a; 按处理的二进制位可以分为&#xff1a; 六.应用&#xff1a; 七.发展趋势 1.增加CPU的数据总线宽度。 2.存储器的发展。 3.片内1/0的改进 …

Docker中安装Tailscale方法一

使用命令行安装 在安装之前&#xff0c;需要先在Tailscale网站上创建一个认证密钥。在运行以下命令时&#xff0c;需要将 <auth key> 替换为你在Tailscale网站上生成的实际认证密钥&#xff1a; 1.只访问安装Tailscale的设备&#xff1a; sudo docker run -d --namet…

DooTask | DooTask任务管理工具:数据加密、端到端加密、多语言支持

DooTask | DooTask任务管理工具&#xff1a;数据加密、端到端加密、多语言支持 一、 前言二、数据加密与端到端加密&#xff1a;保障数据安全与隐私2.1 保护项目机密2.2 增强团队信任2.3 端到端加密的优势2.4 灵活的加密设置 三、多语言支持&#xff1a;提升跨国团队协作效率3.…