Skip to content

小程序的生命周期

一、应用的生命周期

生命周期说明
onLaunch小程序初始化完成时触发,全局只触发一次
onShow小程序启动,或从后台进入前台显示时触发
onHide小程序从前台进入后台时触发
onError小程序发生脚本错误或 API 调用报错时触发
onPageNotFound小程序要打开的页面不存在时触发
onUnhandledRejection小程序有未处理的 Promise 拒绝时触发
onThemeChange系统切换主题时触发

二、页面的生命周期

生命周期说明作用
onLoad生命周期回调—监听页面加载发送请求获取数据
onShow生命周期回调—监听页面显示请求数据
onReady生命周期回调—监听页面初次渲染完成获取页面元素(少用)
onHide生命周期回调—监听页面隐藏终止任务,如定时器或者播放音乐
onUnload生命周期回调—监听页面卸载终止任务

三、组件的生命周期

生命周期说明
created生命周期回调—监听页面加载
attached生命周期回调—监听页面显示
ready生命周期回调—监听页面初次渲染完成
moved生命周期回调—监听页面隐藏
detached生命周期回调—监听页面卸载
error每当组件方法抛出错误时执行

四、应用的生命周期执行过程

  1. 用户首次打开小程序,触发 onLaunch(全局只触发一次)
  2. 小程序初始化完成后,触发 onShow 方法,监听小程序显示
  3. 小程序从前台进入后台,触发 onHide 方法
  4. 小程序从后台进入前台显示,触发 onShow 方法
  5. 小程序后台运行一定时间,或系统资源占用过高,会被销毁

五、页面生命周期的执行过程

  1. 小程序注册完成后,加载页面,触发 onLoad 方法
  2. 页面载入后触发 onShow 方法,显示页面
  3. 首次显示页面,会触发 onReady 方法,渲染页面元素和样式,一个页面只会调用一次
  4. 当小程序后台运行或跳转到其他页面时,触发 onHide 方法
  5. 当小程序从后台进入到前台运行或重新进入页面时,触发 onShow 方法
  6. 当使用重定向方法 wx.redirectTo() 或关闭当前页面返回上一页面 wx.navigateBack(),触发 onUnload

六、当存在应用生命周期和页面周期的时候

相关的执行顺序如下:

  • 打开小程序:(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 重新开始执行.