微信小程序的生命周期分为应用的生命周期、页面的生命周期
一、应用生命周期
App() 必须在 app.js 中调用,必须调用且只能调用一次,app.js中定义了一些应用的生命周期函数:
- 用户首次打开小程序,触发 onLaunch(全局只触发一次)。
- 小程序初始化完成后,触发onShow方法,监听小程序显示。
- 小程序从前台进入后台,触发 onHide方法。
- 小程序从后台进入前台显示,触发 onShow方法。
- 小程序后台运行一定时间,或系统资源占用过高,会被销毁。
- 小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
后台: 点击左上角关闭,或者按了设备 Home 键离开微信,并没有直接销毁,而是进入后台;前台:再次进入微信或再次打开小程序,相当于从后台进入前台。
二、页面生命周期
js文件中定义了一些页面生命周期函数,下面简述下这些生命周期函数的方法作用:
- 小程序注册完成后,加载页面,触发onLoad方法。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。
- 页面载入后触发onShow方法,显示页面。
- 首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。
- 当小程序后台运行或跳转到其他页面时,触发onHide方法。
- 当小程序由后台进入到前台运行或重新进入页面时,触发onShow方法。
- 当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload卸载页面。
三、应用与页面生命周期触发顺序
- 首次进入小程序会先触发应用生命周期中onLaunch方法和onShow方法,其次触发页面生命周期中onLoad、onShow和onReady方法。
- 前台切换到后台时,先触发页面生命周期中onHide方法,再触发应用生命周期的onHide方法。
- 后台切换到前台时,先触发应用生命周期中onShow方法,再触发页面生命周期的onShow方法。
四、参考文档
1、https://www.jianshu.com/p/2e48f2468d5f
2、https://www.cnblogs.com/nosqlcoco/p/wxsmallcycle.html