- 应用级别的生命周期(整个App的生命周期)
- 页面级别的生命周期(单个页面(page)的生命周期)
- 组件基本的生命周期(组件(component)的生命周期
官网地址:App(Object object) | 微信开放文档
应用级别的生命周期 - App的生命周期
必须在 app.js 中调用,必须调用且只能调用一次。 里面包含了几个app的生命周期钩子:
1.onLaunch
: 小程序初始化完成时触发,全局只触发一次
- 云开发的初始化 方便其他页面直接调用云开发的SDK
- 发送请求获取用户的个人信息 方便其他页面使用
- 获取本地存储数据 方便其他页面使用
2.onShow
:小程序启动或切前台显示时触发。
- 重新启动定时器 继续定时执行功能
- 重新触发异步 获取新的数据
- 重新启动播放器等
3.onHide
:小程序从前台进入后台时触发(如 切换到其他的App)。
- 当暂停定时器
- 暂停视频音频的播放
4.onError
:小程序发生脚本错误或 API 调用报错时触发。
- 收集错误信息 发送到后台 进行错误日志的记录
- 弹出窗口提示用户
5.onPageNotFound
:小程序要打开的页面不存在时触发。
- 监听报错,弹出窗口提示用户
- 监听报错,重新跳转页面
6.onUnhandledRejection
:小程序有未处理的 Promise 拒绝时触发。
- 用在统一捕获处理 可以在该生命周期中处理错误情况 ,一般是由于异步代码出错导致的
7.onThemeChange
:系统切换主题时触发。
- 让小程序可以跟着主题的切换 也改变小程序的UI风格,使之体验更好!
页面级别的生命周期 - 页面(page)的生命周期
在每个页面注册函数Page()的参数中,有生命周期的方法:
1.onLoad
:页面加载时执行,只执行一次;
2.onShow
:页面展示时执行,执行多次;
3.onReady
:页面初次渲染时执行,只执行一次;
4.onHide
:页面从前台进入后台时执行;
5.onUnload
:页面卸载时执行;
注意点:
当切换页面需要多次渲染数据改变状态,建议在onShow中使用,当只需初始化一次的时候,可在onLoad或者onReady中使用。当需要清除定时器时,可在onUnload中使用
执行顺序:
onLoad --> onShow --> onReady --> onHide
切换页面时触发的生命周期:
当首次加载A页面,A触发的生命周期为:onLoad --> onShow --> onReady;
从A页面切换到B页面时,A页面触发onHide,B页面触发的生命周期顺序与上面一致;
当B页面返回到A页面时,触发onUnload,当不清缓存,再次进入A页面时,只触发onShow。