小程序--生命周期

255 阅读3分钟

生命周期

小程序的生命周期分为:

  1. 小程序的应用生命周期
  2. 小程序的页面生命周期

应用生命周期

  • 第一次进入小程序的时候,客户端会帮我们初始化小程序的运行环境,同时会从CDN中下载,或者是从本地缓存中拿到小程序的代码包,然后把他注入到运行环境里

  • 初始化完毕之后,微信客户端会给逻辑层App.js 的APP实例派发OnLaunch事件,在逻辑层App.js的APP构造器参数里面OnLaunch方法就会被调用

  • 进入小程序之后,如果点击了左上角的关闭或者手机Home键离开小程序,这个时候小程序没有被直接销毁,属于进入后台状态,App构造函数参数定义的onHide方法就会被调用

  • 再次回到微信/打开小程序,微信客户端会把后台态的小程序唤醒,小程序进入前台状态,调用onshow方法

  • 当小程序发生脚本错误,或者API调用失败的话,触发App构造器里面的onError方法,并给onError方法传入一些错误信息

  • globalData表示小程序应用全局的一些数据

页面生命周期

  • 当我们页面初次加载的时候,微信客户端会给我们在逻辑层所定义的Page实例派发onLoad事件,Page构造器定义的onLoad方法就会被调用,onLoad方法在页面没被销毁之前只会调用一次,在onLoad的回调中我们可以拿到一些当前页面的打开参数

  • 当页面显示之后,Page构造器定义的onShow方法就会被调用,有两种情况:一种是小程序后台态切换为前台状态,另一种是从别的页面返回到当前页面时,当前页的onShow方法就会被调用

  • 当页面初次渲染完成之后,onReady方法就会被调用,在页面没被销毁之前,都只能调用一次,当onReady触发之后,逻辑层就可以和视图层进行交互了

  • 当我们在当前页面的基础上打开一个新的页面时,当前页面触发onHide,

  • 如果关闭了当前页的话,会触发onUnload

  • data表示小程序当前页面的数据

双线程

  1. 负责页面视图的View线程
  2. 负责处理数据和服务的AppService线程

两者协同工作,完成小程序页面生命周期的调用

  • 小程序首次启动之后,有两个线程,分别是AppService和View线程,他们会同时创建

  • AppService线程创建之后,会依次调用onLoad和onShow方法,在这两个方法内可以请求服务器的数据

  • view线程在初始化完毕之后,会通知AppService线程,AppService线程会给他发送页面的初始化数据,

  • view线程拿到初始化的数据之后,会触发首次渲染,渲染完成之后通知AppService线程,AppService线程进行onReady的调用,之后拿到服务器上调用的数据,把数据发送给view线程的视图层,再次渲染

  • AppService线程也可以通过一些操作触发onHide,onShow,onUnLoad方法