微信小程序开发 - 生命周期相关

223 阅读3分钟

App构造器的参数

参数属性 类型 描述

  1. onLaunchFunction 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
  2. onShow Function 当小程序启动,或从后台进入前台显示,会触发 onShow
  3. onHide Function 当小程序从前台进入后台,会触发 onHide
  4. onError Function 当小程序发生脚本错误,或者 API 调用失败时,会触发 onError 并上错误信息
  5. 其他字段   任意 可以添加任意的函数或数据到 Object 参数中,在App实例回调用 this 可以访问

页面的生命周期

参数属性 类型 描述

  1. data Object 页面的初始数据
  2. onLoad Function 生命周期函数--监听页面加载,触发时机早于onShow和onReady
  3. onReady Function 生命周期函数--监听页面初次渲染完成
  4. onShow Function 生命周期函数--监听页面显示,触发事件早于onReady
  5. onHide Function 生命周期函数--监听页面隐藏
  6. onUnloadFunction 生命周期函数--监听页面卸载
  7. onPullDownRefresh Function 页面相关事件处理函数--监听用户下拉动作
  8. onReachBottom Function 页面上拉触底事件的处理函数
  9. onShareAppMessage Function 用户点击右上角转发
  10. onPageScroll Function 页面滚动触发事件的处理函数
  11. 其他 Any 可以添加任意的函数或数据,在Page实例的其他函数中用 this 可以访问

页面初次加载的时候,微信客户端就会给Page实例派发onLoad事件,Page构造器参数所定义的onLoad方法会被调用,onLoad在页面没被销毁之前只会触发1次。

页面显示之后,Page构造器参数所定义的onShow方法会被调用,一般从别的页面返回到当前页面时,当前页的onShow方法都会被调用。

在页面初次渲染完成时,Page构造器参数所定义的onReady方法会被调用,onReady在页面没被销毁前只会触发1次,onReady触发时,表示页面已经准备妥当,在逻辑层就可以和视图层进行交互了。

页面不可见时,Page构造器参数所定义的onHide方法会被调用,这种情况会在使用wx.navigateTo切换到其他页面、底部tab切换时触发。

当前页面使用wx.redirectTo或wx.navigateBack返回到其他页时,当前页面会被微信客户端销毁回收,此时Page构造器参数所定义的onUnload方法会被调用。

// 执行的先后顺序;在页面销毁前,onLoad与onReady仅只执行一次。
onLoad > onShow > onReady(页面可交互) > onHide > onUnload 

image.png

原生组件通信

一些原生组件支持使用context来更新组件。不同于setData,使用context来更新组件并不会涉及到重渲染过程,数据通信过程也不同。在setData的数据通信流程中,数据从逻辑层经过native层转发,传入视图层的WebView,再经过一系列渲染步骤之后传入组件。而使用context时,数据从逻辑层传到native层后,直接传入组件中,这样可以显著降低传输延迟。

image.png