微信小程序的生命周期总结

98 阅读2分钟

微信小程序开发:生命周期总结

生命周期的概念

生命周期就是指一个对象从产生到销毁的过程,也就是生命周期是指程序从创建、开始、暂停、唤起、停止、销毁、卸载的过程。

小程序生命周期的图表:

image.png

大致可分为三个部分 应用级生命周期、页面级生命周期、组件的生命周期

页面的生命周期首先要考虑三个事件:

  • 页面初次加载时:onLoad,在页面没被销毁之前只会触发1次。
  • 页面显示时:onShow ,从别的页面返回到当前页面时,都会被调用。
  • 页面初次渲染完成时:onReady,在页面没被销毁前只会触发1次,在逻辑层可以和视图层进行交互。

页面显示后,随着用户的操作,还会触发其它的事件:

  • 页面不可见时:onHide,wx.navigateTo切换到其他页面、底部tab切换时触发。
  • 返回到其它页时:onUnload,wx.redirectTo或wx.navigateBack使当前页面会被微信客户端销毁回收时触发。

页面用户行为

下拉刷新

  • 下拉刷新 onPullDownRefresh:监听用户下拉刷新事件,需要在全局或具体页面的json 文件中配置enablePullDownRefresh为true

上拉触底

  • 上拉触底onReachBottom:监听用户上拉触底事件。可以在app.json的window选项中或页面配置page.json中设置触发距离onReachBottomDistance。在触发距离内滑动期间,本事件只会被触发一次。

页面滚动

  • 上拉触底onReachBottom:监听用户上拉触底事件。可以在app.json的window选项中或页面配置page.json中设置触发距离onReachBottomDistance。在触发距离内滑动期间,本事件只会被触发一次。

用户转发

  • 用户转发 onShareAppMessage:只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮,在用户点击转发按钮的时候会调用,此事件需要return一个Object,包含title和path两个字段,用于自定义转发内容。

关于异步事件

  • 小程序只有一个JSCode 线程,页面有多个。
  • 小程序切换页面时,小程序的逻辑层依旧运行在同一个JsCore线程中。
  • 页面使用了setTimeout或者setInterval的定时器后,跳转到其他页面时,这些定时器并没有被清除,需要开发者自己在页面离开的时候进行清理。