页面、应用生命周期

一、应用钩子函数

在app.js中App方法中编写

  1. onLaunch 在页面第一次启动时触发,只会触发一次,可用来获取用户信息等数据。
  2. onShow 在页面切换到前台时触发,一定会在onLaunch后触发。可以重置数据或页面效果。
  3. onHide 在页面隐藏到后台时触发。可以取消设置的定时器等。
  4. onError 当应用报错时触发。可以从方法中获取错误参数。
  5. onPageNotFound 当应用第一次启动,找不到入口页面时触发。可以在发生事件时跳转到其他页面(比如404)。

二、页面钩子函数

  • 生命周期钩子函数

    1. onLoad 页面刚刚加载完成时触发。第一个触发。可以在函数中获得options参数,代表路由的参数。

    2. onShow 页面切换到前台时触发。第二个触发。无法通过options获取路由参数,需要通过页面栈(长度<=10)获取:

      1
      2
      const pages = getCurrentPages() // pages就是页面栈了,可以从最后一个对象中获取当前页面的options。
      console.log(pages)
    3. onReady 页面刚刚渲染完毕时触发。第三个触发。

    4. onHide 页面隐藏到后台时触发。

    5. onUnload 页面卸载时(关闭当前页面)触发。

  • 常用功能性钩子函数

    1. onPullDownRefresh 下拉刷新时触发。
    2. onReachBottom 滚动触底时触发。
    3. onShareAppMessage 用户转发小程序后触发。
    4. onPageScroll 页面发生滚动时触发。
    5. onResize 页面大小发生改变时触发(从竖屏到横屏也会触发,App.json页面.json需要启动横竖屏切换功能:微信小程序开发文档:在手机上启用屏幕旋转功能)。
    6. onTabItemTap 当前是Tab页面,再点击同一个Tab时触发(可以用来刷新页面数据等)。