小程序生命周期

2021-03-29  本文已影响0人  云之一

1、应用生命周期

// app.js
App({
  //小程序第一次启动时触发,此处可用于获取用户信息
  //应用场景:获取用户信息,登录校验
  onLaunch(){
    console.log('onLaunch')
  },
  //小程序显示时触发,切换应用显隐时可触发
  //应用场景:重置应用的数据或页页面效果
  onShow() {
    console.log('onShow')
  },
  //小程序被隐藏时触发
  //应用场景:定时器控制
  onHide(){
    console.log('onHide')
  },
  //小程序代码报错时触发
  //应用场景:收集应用错误信息,传给后台
  onError(err){
    console.log('onError')
    console.log(err)
  },
  //首页找不到时触发
  //应用场景:首页不存在时,可执行跳转到其他页面
  onPageNotFound(){
    wx.navigateTo({
      url: '/pages/btn/btn',
    })
    console.log('onPageNotFound')
  },
  //未处理的promise拒绝事件监听函数,当前不支持android
  onUnhandledRejection(res){
    console.log('onUnhandledRejection')
    // res.reason//error对象
    // res.promise//被拒绝的promise
  },
  //系统切换主题时触发
  //默认入参中包含theme,取值为'dark','light'
  onThemeChange(param){
    console.log(onThemeChange)
  }
})

2、页面生命周期

  onLoad(query){
    console.log('onLoad')
    console.log(query)
  }

-onShow 页面显示时触发

 onShow(){
   console.log("page-onShow")
 }
   {
     from:"button",//转发事件来源,button 或 menu
     target:Object,//from为button时,target指向button,否则为undefined
     webViewUrl:'',//如果有嵌入页面,则为嵌入页面的url
  }

该函数需return一个Object

{
     title:'转发标题',
     path:'转发路径',
     imageUrl:'自定义图片路径'
}
 onShareAppMessage(res){
    console.log('onShareAppMessage')
    if (res.from === 'button') {
      // 来自页面内转发按钮
      console.log(res.target)
    }
    return {
      title: '自定义转发标题',
      path: '/page/user?id=123'
    }
  }
{
     title:'收藏标题',
     imageUrl:'http://demo.png',
     query:'name=xxx&age=xx'
}

示例:

  onAddToFavorites(res){
    console.log("onAddToFavorites")
    console.log('webViewUrl: ', res.webViewUrl)
    return {
      title: '自定义标题',
      imageUrl: 'http://demo.png',
      query: 'name=xxx&age=xxx',
    }
  }
   {
      title:'朋友圈列表页上显示标题',
      query:'自定义页面路径中携带的参数',
      imageUrl:'自定义图片路径'
  }

示例:

  onShareTimeline(){
    console.log("onShareTimeline")
    return {
      title:'朋友圈列表页上显示标题',
      query:'自定义页面路径中携带的参数',
      imageUrl:'自定义图片路径'
    }
  }
{
      "pageOrientation":"auto"
}

示例:

  onResize(){
    console.log('onResize')
  },
  {
       index:'tabItem序号',
       pagePath:'tabItem的页面路径',
       text:'tabItem的按钮文字'
  }

示例:

  onTabItemTap(tab){
    console.log('onTabItemTap')
    console.log(tab.index)
    console.log(tab.pagePath)
    console.log(tab.text)
  }

3、组件生命周期

lifetimes: {
    attached: function() {
      // 在组件实例进入页面节点树时执行
    },
    detached: function() {
      // 在组件实例被从页面节点树移除时执行
    },
  }

4、组件所在页面的生命周期

Component({
  pageLifetimes: {
    show: function() {
      // 页面被展示
    },
    hide: function() {
      // 页面被隐藏
    },
    resize: function(size) {
      // 页面尺寸变化
    }
  }
})

5、小程序生命周期图示

mini-pro-lifeTime.png
上一篇 下一篇

猜你喜欢

热点阅读