关于微信小程序生命周期的一些总结

84 阅读2分钟
1、为什么要了解微信小程序的生命周期?

微信小程序的生命周期就是小程序从创建到销毁的整个生命历程,了解生命周期就是要帮助我们在正确的时间做正确的事情。

举个🌰:人在小时候牙没有长齐的时候,肯定是啃不动骨头的,这时候让他啃骨头,肯定是不合适的

2、生命周期我们需要了解的是什么?

生命周期函数:官方提供给我们的微信小程序生命历程中重要的节点

一、小程序应用的生命周期

  • onLaunch :首次打开小程序,初始化完成后会触发的方法(全局只触发一次)
  • onShow:每次进入到小程序都会触发的方法
  • onHide:小程序退出至后台运行时(点击右上角退出小程序),会触发的方法

image.png

二、小程序页面的生命周期

  • onLoad:页面创建时执行,每个页面只会执行一次
  • onShow:页面打开时执行,每次打开都会执行一次
  • onReady:页面首次渲染完毕时执行,每个页面只会执行一次
  • onHide:页面切换为后台状态时执行,navigateTo 及 tab 切换时会执行
  • onUnload:页面销毁时执行,redirectTo 及 navigateBack 时会执行

image.png

三、小程序组件的生命周期

  • created:此时组件实例刚刚被创建,还不能调用 this.setData
  • attached:此时组件实例进入了页面节点树,可以做绝大部分的初始化工作
  • ready:此时组件已经在视图层布局完成
  • moved:此时组件实例被移动到节点树的另一个位置

  • detached:此时组件实例刚从页面节点树移除

  • error:此时有组件方法抛出错误

image.png

四、小程序页面跳转的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。