微信小程序的生命周期函数有哪些,以及执行过程?

news/2024/7/20 2:57:16 标签: 微信小程序, 小程序, 前端

 

目录

1、应用的生命周期 

2、页面的生命周期

3、组件的生命周期 

4、执行顺序 


小程序中,生命周期主要分成了三部分:

① 应用的生命周期        ② 页面的生命周期        ③ 组件的生命周期

1、应用的生命周期 

在 app.js 里面调用,通过 App(Object) 函数用来注册一个小程序,指定其小程序的生命周期回调。

执行过程:

  • ⽤户⾸次打开⼩程序,触发 onLaunch(全局只触发⼀次)

  • ⼩程序初始化完成后,触发onShow⽅法,监听⼩程序显示

  • ⼩程序从前台进⼊后台,触发 onHide⽅法

  • ⼩程序从后台进⼊前台显示,触发 onShow⽅法

  • ⼩程序后台运⾏⼀定时间,或系统资源占⽤过⾼,会被销毁

2、页面的生命周期

当进入/切换到一个新的页面时调用,通过 App(Object) 函数用来注册一个页面。

执行过程:

  • ⼩程序注册完成后,加载⻚⾯,触发onLoad⽅法
  • ⻚⾯载⼊后触发onShow⽅法,显示⻚⾯
  • ⾸次显示⻚⾯,会触发onReady⽅法,渲染⻚⾯元素和样式,⼀个⻚⾯只会调⽤⼀次
  • 当⼩程序后台运⾏或跳转到其他⻚⾯时,触发onHide⽅法
  • 当⼩程序有后台进⼊到前台运⾏或重新进⼊⻚⾯时,触发onShow⽅法
  • 当使⽤重定向⽅法 wx.redirectTo() 或关闭当前⻚返回上⼀⻚wx.navigateBack(),触发onUnload

3、组件的生命周期 

通过 Component(Object) 函数用来注册一个组件

注意的是:

  • 组件实例刚刚被创建好时, created 生命周期被触发。此时,组件数据 this.data 就是在 Component 构造器中定义的数据 data , 此时不能调用 setData
  • 在组件完全初始化完毕、进入页面节点树后, attached 生命周期被触发。此时, this.data 已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行
  • 在组件离开页面节点树后, detached 生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则 detached 会被触发。

还有一些特殊的生命周期,它们并非与组件有很强的关联。但有时组件需要获知,以便组件内部处理,这样的生命周期称为“组件所在页面的生命周期”,在 pageLifetimes 定义段中定义,如下:

Component({
  pageLifetimes: {
    show: function() {
      // 页面被展示
    },
    hide: function() {
      // 页面被隐藏
    }
  }
})

4、执行顺序 

 当存在也应用生命周期和页面周期的时候,相关的执行顺序如下:

  • 打开小程序:(App)onLaunch --> (App)onShow --> (Pages)onLoad --> (Pages)onShow --> (pages)onReady

  • 进入下一个页面:(Pages)onHide --> (Next)onLoad --> (Next)onShow --> (Next)onReady

  • 返回上一个页面:(curr)onUnload --> (pre)onShow

  • 离开小程序:(App)onHide

  • 再次进入:小程序未销毁 --> (App)onShow(执行上面的顺序),小程序被销毁,(App)onLaunch重新开始执行


http://www.niftyadmin.cn/n/235937.html

相关文章

数据结构之顺序表,实现顺序表的增删改查

目录 一、顺序表的概念 二、顺序表的分类 1.静态顺序表 2.动态顺序表 3.顺序表的增删改查 总结 一、顺序表的概念 顺序表是一段物理地址连续的村塾单元依次存储数据元素的线性结构,一般情况下使用数组存储,在数组上完成数据的增删改查。 二、顺…

deletepod = restart pod?

k8s delete pod后是如何创建新的pod 当您使用kubectl delete pod命令删除一个Pod时,Kubernetes控制平面会检测到该Pod已经被删除,然后会自动创建一个新的Pod。这是因为Kubernetes使用控制器来管理Pod的生命周期,当Pod被删除时,控…

模型部署一

模型部署解决的问题: 1、模型部署,指把训练好的模型在特定环境中运行的过程。模型部署要解决模型框架兼容性差和模型运行速度慢这两大问题。2、模型部署的常见流水线是“深度学习框架-中间表示-推理引擎”。其中比较常用的一个中间表示是 ONNX。 3、深度…

【Diffusion Model】Learning notes

来自 扩散模型 Diffusion Model 1-1 概述 扩散模型是什么? 本质是生成模型,拟合目标分布,然后生成很多数据符合这个分布 训练测试阶段? 和 GAN 相比优势是什么? generator 和 discriminator 两者都得训练的比较均衡…

android存储第一篇--开机初始化流程

android版本:android-11.0.0_r21http://aospxref.com/android-11.0.0_r21/ 开机后,StorageManagerService收到开机广播消息H_BOOT_COMPLETED,按时间顺序完成以下4件事情: init用户目录的加密状态reset external storage service…

LDMUI-001 61320946C模拟量模件的40端即直流24伏的负端接至逻辑地汇流排上

LDMUI-001 61320946C模拟量模件的40端即直流24伏的负端接至逻辑地汇流排上 ​ 八、现场接地常用注意事项 1.现场控制站 接地螺丝因机柜本体与底座间有胶皮形成绝缘,屏蔽地汇流排与底座间绝缘,现场控制站必须按规定做好接地处理。即分别接至现场控制站接…

AcWing第 98 场周赛

4947. 大整数 给定两个整数 n,k。 请你输出一个 n 位数,要求其各位数字均为 k。 输入格式 共一行,包含两个整数 n,k。 输出格式 一个整数,表示满足要求的 n 位数。 数据范围 前三个测试点满足 1≤n≤3。 所有测试点满足 1≤n≤100&am…

开启虚拟机出现报错:“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录报错原因解决方式(这里以联…