小程序生命周期分为小程序的应用生命周期和页面生命周期。
一、小程序应用生命周期
小程序的应用生命周期有四个钩子,分别是onLaunch,onShow,onHide和onError。
第一次进入小程序的时候,微信客户端会帮我们初始化小程序的运行环境,这时候会从本地或者CDN上拿到小程序的代码包,然后注入到运行环境里面。初始化完毕之后微信客户端会给逻辑层APP事例派发onLaunch事件,onLaunch方法方法就会被调用。
如果点击关闭或者按Home键离开小程序,那么小程序就进入了后台状态。这时onHide方法就会被调用,当再次打开小程序,onShow方法就会被调用。
当小程序发生脚本错误,或者API调用失败的时候,就会触发onError方法。
在这里的globalData是小程序全局的数据。
二、页面生命周期
小程序页面的生命周期有5个钩子,分别是onLoad,onShow,onReady,onHide和onUnload。当初次加载页面的时候,逻辑层会被配置事例派发一个onLoad事件,配置构造器定义的onLoad方法就会被调用。这个onLoad方法在页面没被销毁之前只会被调用一次。
在onLoad回调中,我们可以拿到当前页面的一些打开参数。
当页面显示之后,配置构造器参数所定义的onShow方法就会被调用,这里的onShow调用有两种情况,一种是上面所说的小程序进入后台后,再次回到前台;另外一种情况是离开该页后,从另外的页面回到该页。也会调用onShow方法。
当页面初次渲染完毕,配置构造器参数定义的onReady方法就会被调用。onReady方法是在onShow方法之后调用的。onReady和onLoad方法一样,在页面没被销毁之前都只是调用一次。
当onReady触发之后,逻辑层就可以和视图层惊醒交互了。
在当前页面的基础上,再打开一个新的页面,那么就会触发在配置构造器参数里面定义的onHide方法。
如果我们关闭当前页的话,那么会触发当前页onUnload的方法。
另外data表示的是小程序当前页面的数据。
三、小程序运行线程
小程序是由两大线程组成,分别是负责页面视图的view线程和处理数据和服务的AppService线程。两者协同工作,完成小程序的生命周期的调用。