微信小程序开发:生命周期总结
生命周期的概念
生命周期就是指一个对象从产生到销毁的过程,也就是生命周期是指程序从创建、开始、暂停、唤起、停止、销毁、卸载的过程。
小程序生命周期的图表:
大致可分为三个部分 应用级生命周期、页面级生命周期、组件的生命周期
页面的生命周期首先要考虑三个事件:
- 页面初次加载时:
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的定时器后,跳转到其他页面时,这些定时器并没有被清除,需要开发者自己在页面离开的时候进行清理。