原生微信小程序开发 - 生命周期

318 阅读2分钟

最近公司接了新活,开发一款微信小程序,借着开发复习一下原生小程序开发的内容 原生微信小程序的语言和vue2有很多相似之处,同样也存在生命周期,不过不同的是Vue2是vue实例的生命周期,在微信小程序中生命周期也有分类,我自己写了一个思维导图供大家参考一下,里面包含了应用生命周期和页面生命周期.组件生命周期下次补上.

微信小程序的生命周期.png

微信小程序生命周期分为1.应用生命周期. 2.页面生命周期. 3.组件生命周期 页面生命周期有三个常用的钩子函数

● onLoad 在页面加载完成时执行,只会执行 1 次,常用于获取地址参数和网络请求

● onShow 在页面处于可见状态时执行,常用于动态更新数据或状态

● onHide 在页面处于不见状态时执行,常用于销毁长时间运行的任务,如定时器

onReady 在页面初次渲染完成时执行,只会执行 1 次,常用于节点操作或动画交互等场景 相比之前三个不是很常用

页面生命周期的钩子函数
Page({

  onLoad(){

    console.log('生命周期页面, 加载完成')  

  },

  onReady(){

    console.log('生命周期页面, 页面初次渲染完成')  

  },

  onShow(){

    console.log('生命周期页面, 处于可见状态')  

  },

  onHide(){

    console.log('生命周期页面, 处于不可见状态')  

  }
})


应用生命周期 在app.js文件中设置

● onLaunch 小程序启动时执行1次,常用于获取场景值或者启动时的一些参数(如自定义分享)

● onShow 小程序前台运行时执行,常用于更新数据或状态

● onHide 小程序后台运行时执地,常用于销毁长时间运行的任务,如定时器。

示例


    // app.js
    App({
      onLaunch() {
        // 展示本地存储能力
        const logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.setStorageSync('logs', logs)

        // 登录
        wx.login({
          success: res => {
            // 发送 res.code 到后台换取 openId, sessionKey, unionId
          }
        })
      }
      
    })
   

组件生命周期

组件的生命周期,指的是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的框架事件时被自动触发。

其中,最重要的生命周期是 created attached detached ,包含一个组件实例生命流程的最主要时间点。 组件生命周期的钩子函数要写在lifetimes中这个是注意点

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