1、为什么要了解微信小程序的生命周期?
微信小程序的生命周期就是小程序从创建到销毁的整个生命历程,了解生命周期就是要帮助我们在正确的时间做正确的事情。
举个🌰:人在小时候牙没有长齐的时候,肯定是啃不动骨头的,这时候让他啃骨头,肯定是不合适的
2、生命周期我们需要了解的是什么?
生命周期函数:官方提供给我们的微信小程序生命历程中重要的节点
一、小程序应用的生命周期
- onLaunch :首次打开小程序,初始化完成后会触发的方法(全局只触发一次)
- onShow:每次进入到小程序都会触发的方法
- onHide:小程序退出至后台运行时(点击右上角退出小程序),会触发的方法
二、小程序页面的生命周期
- onLoad:页面创建时执行,每个页面只会执行一次
- onShow:页面打开时执行,每次打开都会执行一次
- onReady:页面首次渲染完毕时执行,每个页面只会执行一次
- onHide:页面切换为后台状态时执行,navigateTo 及 tab 切换时会执行
- onUnload:页面销毁时执行,redirectTo 及 navigateBack 时会执行
三、小程序组件的生命周期
- created:此时组件实例刚刚被创建,还不能调用 this.setData
- attached:此时组件实例进入了页面节点树,可以做绝大部分的初始化工作
- ready:此时组件已经在视图层布局完成
-
moved:此时组件实例被移动到节点树的另一个位置
-
detached:此时组件实例刚从页面节点树移除
- error:此时有组件方法抛出错误
四、小程序页面跳转的API
API:微信官方提供的一些可以实现特点功能的方法
- wx.navigateTo:保留当前页面(onHide),跳转到应用内的某个页面(tabBar页面除外),页面栈最多10层。使用 wx.navigateBack 可以返回上一页面,适用于页面不是很多的小程序。
- wx.redirectTo:关闭当前页面(onUnload),跳转到应用内的某个页面(tabBar页面除外)。适用于页面比较多的小程序。
- wx.relaunch:关闭页面栈中的所有页面,跳转到应用内的某个页面。
- wx.switchTab:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。也可以使用 wx.relaunch 进行跳转。
- wx.navigateBack:关闭当前页面(onUnload),返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定返回几层,参数是 delta。若 delta 大于当前页面栈中的页面数,则返回用户进入小程序的第一个页面,不传则默认为1。