微信小程序生命周期

本文详细介绍了微信小程序的生命周期,包括应用的生命周期、页面的生命周期和组件的生命周期。在应用层面,涉及onLaunch、onShow、onHide等方法;页面层面,包括onLoad、onShow、onReady、onHide、onUnload;组件方面,提到了created、attached、detached等关键周期。同时阐述了页面和组件生命周期的执行顺序及特殊情况。
摘要由CSDN通过智能技术生成

一、生命周期主要分成了三个部分

应用的生命周期

页面的生命周期

组件的生命周期

二、应用的生命周期

属性

类型

说明

onLaunch

function

小程序初始化完成时触发,全局只触发一次

onShow

function

小程序启动,或从后台进入前台显示时触发

onHide

function

小程序从前台进入后台时触发

onError

function

小程序发生脚本错误或 API 调用报错时触发

onPageNotFound

function

小程序要打开的页面不存在时触发

onUnhandledRejection()

function

小程序有未处理的 Promise 拒绝时触发

onThemeChange

function

系统切换主题时触发

2.1应用的生命周期执行过程

首次打开小程序,触发 onLaunch (全局只触发一次)

小程序初始化完成后,触发 onShow 方法,监听小程序显示

小程序从前台进入后台,触发 onHide 方法

小程序从后台进入前台显示,触发 onShow 方法

小程序后台运行一定时间,或系统资源占用过高,会被销毁

三、页面的生命周期

属性

类型

说明

作用

dataobject页面的初始数据

onLoad

function

生命周期回调—监听页面加载

发送请求获取数据

onShow

function

生命周期回调—监听页面显示

请求数据

onReady

function

生命周期回调—监听页面初次渲染完成

获取页面元素(少用)

onHide

function

生命周期回调—监听页面隐藏

终止任务,如定时器或者播放音乐

onUnload

function

生命周期回调—监听页面卸载

终止任务

onPullDownRefreshfunction监听用户下拉操作
onReachBottomfunction页面上拉触底事件的处理函数
onShareAppMessagefunction用户点击右上角转发
onPageScrollfunction页面滚动触发事件的处理函数
onResizefunction页面尺寸改变时触发
onTabltemTapfunction当前是tab页时,点击tab时触发

3.1页面生命周期的执行过程

小程序注册完成后,加载页面,触发onLoad 方法

页面载入后触发 onShow 方法,显示页面

首次显示页面,会触发 onReady 方法,渲染页面元素和样式,一个页面只会调用一次

当小程序后台运行或跳转到其他页面时,触发onHide方法

当小程序有后台进入到前台运行或重新进入页面时,触发 onShow 方法

当使用重定向方法 wx.redirectTo()或关闭当前页返回上一页 wx.navugateBack(),触发 onUnload

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

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

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

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

离开小程序:(App)onHide

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

四、组件的生命周期

通过 component(object)进行注册组件

生命周期

说明

created

生命周期回调—监听页面加载

attached

生命周期回调—监听页面显示

ready

生命周期回调—监听页面初次渲染完成

moved

生命周期回调—监听页面隐藏

detached

生命周期回调—监听页面卸载

error

每当组件方法抛出错误时执行

注意:

组件实例刚刚被创建好时,created 生命周期被触发,此时,组件数据 this.data 就是在 component 构造器中定义的数据data,此时不能调用 setData

在组件完全初始化完毕、进入页面节点树后,attached 生命周期被触发。此时,this.data已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行

在组件离开页面节点树后, detached 生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则datached会被触发

五、组件所在页面的生命周期

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

生命周期

说明

show

组件所在的页面被展示时执行

hide

组件所在的页面被隐藏时执行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值