AnYaoqi

V1

2023/05/09阅读:14主题:红绯

Vue3生命周期

Vue3生命周期

官方文档:https://cn.vuejs.org/api/composition-api-lifecycle.html

组件加载

setup

组件创建前触发,等同于beforeCreate和created,没有this

onBeforeMount

组件挂载前触发,等同于beforeMount,

onMounted

组件挂载后触发,dom加载完毕。等同于Mounted

组件更新

onBeforeUpdate

组件更新前调用,等同于beforeUpdate

onUpdated

组件更新后调用,等同于updated

组件卸载

onBeforeUnmount

组件卸载前调用,等同于beforeDetory

onUnmounted

组件卸载后调用,等同于detoryed

Keep-alive

onActivated

使用keep-alive组件缓存时,进入页面时调用,等同于activated

onDeactivated

使用keep-alive组件缓存时,离开页面时调用,等同于deactivated

捕获子组件错误

onErrorCaptured

onErrorCaptured生命周期是用来捕获子组件中的错误,不是当前组件中的错误

如果不使用这个生命周期的话子组件报错的时候浏览器里会直接报错,使用这个生命周期会捕获到错误,浏览器中就不会报错了,错误可以在这个生命周期中处理。

组件调试

onRenderTracked

当有数据在组件模板中使用的时候触发

onRenderTriggered

当有数据在组件模板中修改的时候触发

<script>
import { onRenderTracked, onRenderTriggered, reactive } from 'vue'
export default {
  setup() {
    const obj = reactive({
      name'高启强'
    })

    // 当数据在模板中使用的时候触发
    onRenderTracked((effect, target, type, key) => {
      debugger
    })
    // 当数据在模板中被改变的时候触发
    onRenderTriggered((effect, target, type, key, newValue, oldValue, oldTarget) => {
      debugger
    })

    function changeName({
      obj.name = '高启盛'
    }

    return {
      obj,
      changeName
    }
  }
}
</script>

<template>
  <div>{{ obj.name }}</
div>
  <button @click='changeName'>改变</button>
</template>

分类:

前端

标签:

Vue.js

作者介绍

AnYaoqi
V1