微信小程序全局生命周期和页面生命周期

全局生命周期

App() 必须在 app.js 中调用,必须调用且只能调用一次,app.js中定义了一些全局的生命周期函数

(1)onLaunch(Object object): 初始化小程序时触发,全局只触发一次


(2)onShow(Object object): 小程序初始化完成或用户从后台切换到前台显示时触发


(3)onHide(): 用户从前台切换到后台隐藏时触发


(4)onError(String error): 小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息

(5)onPageNotFound(Object object):小程序要打开的页面不存在时触发。也可以使用 wx.onPageNotFound 绑定监听。

App({


  onLaunch(options){
     
    console.log('小程序初始化')

  },
  onShow(options){
    console.log('监听小程序启动或切前台')
  },
  onHide(){
    console.log('监听小程序切后台')
  },

  onError(msg){
    console.log('错误监听函数')
  },
  onPageNotFound(res){
    console.log('小程序要打开的页面不存在时触发');
    wx.redirectTo({ // 重定向 比如页面错误 我跳转到别的页面
      url: 'pages/?'
    }) // 如果是 tabbar 页面,就使用 wx.switchTab
  }
  
})

(6):onUnhandledRejection(Object object):小程序有未处理的 Promise 拒绝时触发。也可以使用 wx.onUnhandledRejection 绑定监听。

(7):onThemeChange(Object object):系统切换主题时触发。也可以使用 wx.onThemeChange 绑定监听。

页面生命周期

(1):data:data是页面第一次渲染使用的初始数据

页面加载时,data 将会以JSON字符串的形式由逻辑层传至渲染层,因此data中的数据必须是可以转成JSON的类型:字符串,数字,布尔值,对象,数组。

渲染层可以通过 WXML 对数据进行绑定。

(2):onLoad(Object query):页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。

(3):onShow():页面显示/切入前台时触发。

(4):onReady():页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。

(5):onHide():页面隐藏/切入后台时触发。 如 wx.navigateTo 或底部 tab 切换到其他页面,小程序切入后台等。

(6):onUnload():页面卸载时触发。如wx.redirectTo或wx.navigateBack到其他页面时。

//index.js
Page({
  data: {
    text: "This is page data."
  },
  onLoad: function(options) {
    // Do some initialize when page load.
  },
  onShow: function() {
    // Do something when page show.
  },
  onReady: function() {
    // Do something when page ready.
  },
  onHide: function() {
    // Do something when page hide.
  },
  onUnload: function() {
    // Do something when page close.
  },
})

全局和页面生命周期触发顺序:

(1):首次进入小程序会先触发应用生命周期中小程序初始化onLaunch方法和onShow方法,其次触发页面生命周期中onLoad、onShow和onReady方法。

(2):前台切换到后台时,先触发页面生命周期中onHide方法,再触发应用生命周期的onHide方法

(3):后台切换到前台时,先触发应用生命周期中onShow方法,再触发页面生命周期的onShow方法。

你可能感兴趣的:(微信小程序,小程序,前端)