小程序的生命周期
小程序
小程序有两个线程:界面线程和服务线程
界面线程四种状态:
1.初始化状态:初始化完毕之后向服务线程发送初始化完毕; 2.首次渲染状态:接收服务线程的初始化数据(data),对小程序页面开始进行渲染,渲染完毕后,发送信号首次渲染完毕给服务线程,并将页面展示给用户; 3.持续渲染状态:等待服务线程发送数据this.setdata,接收数据进行持续渲染;
4.结束状态。
服务线程四种状态:
1.初始化状态:初始化完成,调用onLoad和onShow; 2.等待激活状态:接收到界面线程初始化完成信号后,将初始化数据发送给界面线程,等待界面线程完成首次渲染。
3.激活状态:收到界面线程首次渲染完成的信号,进入激活状态,程序正常运行;
4.后台运行状态:当用户关闭微信或从小程序界面退出,小程序进入后台。
程序生命周期
小程序的生命周期在app.js中进行调用,使用App(Object)来进行小程序的注册并且只能注册一次,接收object类型的参数,指定小程序的生命周期回调;
在第一次进入小程序的时候,客户端初始化小程序的运行环境,初始化完成后,客户端派发onLaunch事件给逻辑层AppJs的app实例,当用户关闭微信或从小程序界面退出,小程序进入后台,触发onHide,当再次进入微信或者回到小程序,触发onShow,从后台回到前台。当小程序进入后台时间过长。系统资源占用过高,才会进行销毁。
Object参数:
onLaunch---------监听小程序初始化(在小程序初始化完成时触发,全局触发一次)
onShow------------监听小程序显示(小程序启动或者从后台进入前台时触发)
onHide-------------监听小程序的隐藏(小程序从前台进入后台时触发)
onError------------监听错误函数(小程序发生脚本错误或者api调用错误时触发)
onPageNotFound-----------监听页面(小程序要打开的页面不存在时触发)
经过demo测试,小程序的声明周期的调用顺序为onLaunch>onShow>onHide
页面生命周期
页面的声明周期函数就是当进入或者切换一个新的页面时,就会进行一次生命周期函数的调用,通过Page(Object)来进行页面的注册,接收object类型的参数;
初次加载时,微信客户端调用onLoad方法,onLoad在页面销毁前只会调用一次,在onLoad回调时,我们可以拿到当前页面的调用的打开参数,当页面显示的时候,onShow方法被调用。当页面完成初次渲染,onReady方法被调用,onReady方法在页面销毁前也只会调用一次。触发onReady之后,逻辑层与视图层进行交互。
Object参数:
onLoad--------监听页面的加载
onShow-------监听页面的显示(每次打开页面都会调用一次)
onReady-------监听页面初次渲染(一个页面调用一次进行渲染)
onHide---------监听页面隐藏 页面从前台转到后台
onUnload-------监听页面销毁
onPullDownRefresh---------监听下拉刷新
经过demo测试,小程序页面的声明周期的调用顺序为onLoad>onShow>onReady。
在一个小程序执行过程中,先触发小程序周期函数,再触发页面周期函数,即先调用onLaunch,再调用onLoad。并且再页面生命周期中onLoad与onReady都只执行一次。