微信小程序页面生命周期(页面生命周期函数的总结)

本文将从多个方面对微信小程序页面生命周期进行详细阐述,旨在帮助开发者更好地理解小程序页面生命周期并掌握使用方法。

一、生命周期介绍

微信小程序页面生命周期分为四个部分,分别是:页面加载时、页面渲染时、页面显示时和页面隐藏时。其中,页面加载时和页面渲染时是必须执行的流程,而页面显示时和页面隐藏时则是在小程序页面切换时才会触发。

小程序页面生命周期中的各个函数执行顺序如下:

onLoad() —> onShow() —> onReady() —> onHide() —> onUnload()

下面将对各个函数进行详细阐述。

二、onLoad()

onLoad()函数会在页面加载时执行,且只执行一次。

其中,可以通过 options 获取打开小程序页面时所传入的参数。示例如下:

Page({
  onLoad: function (options) {
    console.log(options.id) // 打印:123
  }
})

在此函数中可以进行一些数据初始化的工作。如下面的代码,在 onLoad() 函数中对页面的一些参数进行初始化。

Page({
  data: {
    title: '页面标题',
    list: []
  },
  onLoad: function () {
    this.setData({
      list: ['a', 'b', 'c']
    })
  }
})

三、onShow()

onShow()函数在页面显示时执行,包括从后台进入前台,返回当前页面和切换标签栏等情况。

onShow() 函数的执行顺序在 onLoad() 之后。因此,如果在 onLoad() 函数中有异步操作,可以在 onShow() 中获取结果然后进行处理。

下面的示例中,当用户在新闻详情页面点击右上角分享按钮时,会回到新闻列表页面,并重新获取最新的新闻列表数据。

Page({
  data: {
    newsList: []
  },
  onLoad: function () {
    this.getData() // 异步获取新闻列表数据
  },
  onShow: function () {
    this.setData({
      newsList: wx.getStorageSync('newsList')
    })
  }
})

四、onReady()

onReady()函数在页面渲染完成时执行,且只执行一次。

页面渲染完成后,可以进行一些其他的操作,例如动画的初始化和定位的获取等。

下面的代码中,当页面渲染完成后,通过 createAnimation() 函数创建一个动画实例。

Page({
  onReady: function () {
    this.animation = wx.createAnimation({
      duration: 1000,
      timingFunction: 'linear'
    })
  }
})

五、onHide()

onHide()函数在页面隐藏时执行,包括跳转到新页面、点击了底部 tab 栏之类的情况。

在 onShow() 函数执行之后,onHide() 函数就会立即执行。

下面的示例中,在用户退出新闻详情页面时,会关闭音频播放器。

Page({
  onHide: function () {
    wx.stopBackgroundAudio()
  }
})

六、onUnload()

onUnload()函数在页面卸载时执行,一般在页面被销毁前执行,例如用户关闭了当前小程序页面。

与 onLoad() 函数类似,onUnload() 函数也只会执行一次。

下面的示例中,当用户退出新闻详情页面时,对页面进行清理操作,例如清除参与的事件监听器等。

Page({
  onUnload: function () {
    clearTimeout(this.data.timer) // 清除定时器
    wx.offAccelerometerChange() // 取消加速度计事件监听
  }
})

七、总结

本文对微信小程序页面生命周期进行了详细的介绍,涵盖了 onLoad()、onShow()、onReady()、onHide() 和 onUnload() 等函数的使用和示例,希望能够对开发者有所帮助。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平