生命周期执行顺序

app生命周期

冷启动:用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动。

热启动: 用户已经打开过小程序,在一定时间内再次打开该小程序,此时无需重新启动。只需将后台态的小程序切换到前台,这个过程就是热启动

  • onLaunch: 小程序初始化完成(冷启动)时触发
  • onShow:小程序热启动时触发
  • onHide:小程序从前台进入后台触发
  • onError:小程序发生脚本错误时触发
  • onPageNotFound:要打开的页面不存在时触发

page页面生命周期

  • onLoad:页面加载时触发,只会首次渲染的时候执行一次
  • onReady:页面初次渲染完成时触发,只会首次渲染的时候执行一次。该生命周期表示此时页面已经可以和视图层发生交互
  • onShow:每次打开页面时都触发,当navigateTo或底部tab切换时调用
  • onHide:当页面隐藏时触发,当redirectTo或navigateBack的时候调用
  • onUnload:当页面卸载时触发,当redirectTo或navigateBack的时候调用
  • onPullDownRefresh:当用户下拉刷新事件时触发
  • onReachBottom:当用户上拉触底事件时触发
  • onShareAppMessage:当用户转发页面时触发
  • onPageScroll:当用户滑动页面时触发
  • onResize:当屏幕

component组件生命周期

lifetimes中的生命周期:

  • created:组件实例化时触发,此时还不可以与操作节点与更改数据
  • attached:组件实例进入页面节点树时触发,此可以更改数据,但还不可以操作视图层结构
  • ready:组件在页面视图层完成布局后触发,此时可以操作视图层结构
  • moved:当组件实例被移到页面节点树其他位置时触发
  • detached:当组件实例被页面节点树中移除时触发
  • error:当组件出错时触发

pageLifetimes中的生命周期:

  • show:组件所在页面被展示时触发
  • hide:组件所在的页面被隐藏时触发
  • resize:组件所在的页面尺寸变化时触发

三者之间的生命周期顺序

app与page
image.png

##程序初始化
App onLaunch
App onShow
Page onLoad
Page onShow
Page onReady

##程序进入后台
Page onHide
App onHide
 

page与component

##页面显示
Component created
Component attached
Page onLoad
Page onShow
Component ready
Page onReady

##页面销毁
Page onUnload
Component detached

上拉刷新、下拉加载的实现

主要利用page的onPullDownRefreshonReachBottom生命周期来实现。

  • onPullDownRefresh中刷新数据
  • onReachBottom中获取下一分页的数据

十只生蚝
11 声望0 粉丝

大胆求证 小心验证