微信小程序的生命周期分为:应用生命周期(App)和页面生命周期(Page)。
一、小程序生命周期
小程序应用的生命周期函数在 app.js 文件中调用。
App() 函数用来注册小程序,接收一个对象作为参数,该对象指定小程序的生命周期回调。
小程序生命周期的调用顺序:onLaunch(小程序初始化完成时,且全局只触发一次) > onShow(小程序启动,或从后台进入前台显示时) > onHide(小程序从前台进入后台时)
第一次进入小程序的时候,微信客户端会先初始化小程序的运行环境,初始化完成后,微信客户端会给逻辑层APP实例派发onLaunch事件,该方法就会被调用。
当小程序加载显示出来了,就会执行onShow方法。如果从后台回到小程序,会再次执行该方法。
如果点击右上角的胶囊关闭按钮,或者直接按手机HOME键离开了小程序,小程序就进入后台状态,这时就会触发onHide方法。
二、页面生命周期
页面生命周期函数在每个页面目录下的 页面名.js 文件中调用。
Page() 函数用来注册一个页面。接收一个对象作为参数,该对象指定页面的初始数据、生命周期回调、事件处理函数等。
当你每次进入或切换到一个新页面时,就会调用的生命周期函数。
页面生命周期的调用顺序:onLoad(页面初次加载,在页面没被销毁之前只会调用一次) > onShow(页面被显示出来后) > onReady(页面初次渲染完成,同样的,在页面没被销毁之前只会调用一次) > onHide(页面被隐藏或切入后台) / onUnload(页面卸载)
第一次加载页面的时候,逻辑层会被配置实例派发一个onLoad事件,该方法就会被调用。
当页面被显示出来时,就会执行onShow方法。如果从后台回到小程序、或者离开此页面后,又从另外的页面回到此页,会再次执行该方法。
当页面初次渲染完成,onReady方法就会被触发。该方法触发之后,代表页面已经准备妥当,逻辑层就可以和视图层交互了。
在保留当前页面的基础上跳转到新页面、或者从底部tab栏切换到其他页面、再或者是小程序切入后台,就会触发onHide方法。
如果关闭当前页或者关闭并返回上一页的话,那么会触发当前页onUnload的方法。