<mark>首先,微信小程序分为有两种生命周期,</mark>
1.页面生命周期(Page)
2.App生命周期

先看App生命周期

查看微信文档

它一共有四种生命周期

1.onLaunch (options)

Launch是启动的意思,当执行小程序时,监听小程序初始化 (初次启动) 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)


2.onShow(options)

监听小程序 显示 当小程序启动,或从后台进入前台显示,会触发 onShow

<mark>注意:</mark>
onLaunchonShow非常相似,只是前者只有初始化时触发且全局仅仅触发一次,而后者是只要展示就触发一次


3.onHide

监听小程序隐藏 当小程序从前台进入后台,会触发 onHide


4.onError (msg)

当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息


注意:

onLaunch 和onShow的方法,都将返回一个参数对象, 里面包含了三个参数 ,

path:打开小程序的路径
query:打开小程序页面url
scene:打开小程序的场景值


其中场景值在微信文档中有明确说明:

查看详情点击这里


页面生命周期

查看微信文档

页面的生命周期比app多很多,

<mark>生命周期:</mark>

Page({
  data: {
    text: "This is page data."
  },
  onLoad: function(options) {
    // 页面创建时执行
  },
  onShow: function() {
    // 页面出现在前台时执行
  },
  onReady: function() {
    // 页面首次渲染完毕时执行
  },
  onHide: function() {
    // 页面从前台变为后台时执行
  },
  onUnload: function() {
    // 页面销毁时执行
  },
  onPullDownRefresh: function() {
    // 触发下拉刷新时执行
  },
  onReachBottom: function() {
    // 页面触底时执行
  },
  onShareAppMessage: function () {
    // 页面被用户分享时执行
  },
  onPageScroll: function() {
    // 页面滚动时执行
  },
  onResize: function() {
    // 页面尺寸变化时执行
  },
  onTabItemTap(item) {
    // tab 点击时执行
    console.log(item.index)
    console.log(item.pagePath)
    console.log(item.text)
  }, // 事件响应函数
  viewTap: function() {
    this.setData({
      text: 'Set some data for updating view.'
    }, function() {
      // this is setData callback
    })
  },
  // 自由数据
  customData: {
    hi: 'MINA'
  }
})

查看page介绍

官网已经详细的对每一个函数进行了详细的介绍,点击上面链接即可

页面生命周期图如下: