Vue3新增的两个生命周期分析解释【onRenderTracked()状态跟踪和onRenderTriggered() 状态触发】

简介: Vue3新增的两个生命周期分析解释【onRenderTracked()状态跟踪和onRenderTriggered() 状态触发】

onRenderTracked() 状态跟踪是什么?

是一个状态跟踪,他会跟踪页面上所有的方法跟变量,也就是对我们return返回的属性和方法进行跟踪

作用

当页面有一个update的时候,会生成一个event对象,通过event对象查看代码/程序的问题所在

演示代码

<template>
  <div class="life">
    {{ num }}
    <button @click="addNum">加1</button>
  </div>
</template>
<script lang="ts">
import {
  defineComponent,
  reactive,
  toRefs,
  onRenderTracked,
} from "vue";
export default defineComponent({
  name: "Life",
  components: {},
  setup() {
    const data = reactive({
      num: 1,
      addNum: () => {
        data.num++;
      },
    });
    onRenderTracked((event) => {
      console.log(event);
    });
    const refData = toRefs(data);
    return {
      ...refData,
    };
  },
});
</script>
<style lang="scss">
.life {
  margin-top: 40px;
}
</style>

总结:刷新浏览器后,浏览器打印出就可以看到属性key,对应的就是num这个属性名

onRenderTriggered() 状态触发是什么?

状态触发,他不会跟踪每一个值,而是跟踪发生变化值得信息,并且新值和旧值都会给你展示出来

作用

可以展示变化值的信息,old和new的值

代码演示

<template>
  <div class="life">
    {{ num }}
    <button @click="addNum">加1</button>
  </div>
</template>
<script lang="ts">
import {
  defineComponent,
  reactive,
  toRefs,
  onRenderTriggered,
} from "vue";
export default defineComponent({
  name: "Life",
  components: {},
  setup() {
    const data = reactive({
      num: 1,
      addNum: () => {
        data.num++;
      },
    });
    onRenderTriggered((event) => {
      console.log(event);
    });
    const refData = toRefs(data);
    return {
      ...refData,
    };
  },
});
</script>
<style lang="scss">
.life {
  margin-top: 40px;
}
</style>

key:那边变量发生了变化

newValue:更新后的变量

oldValue:更新前的变量

target:目前页面中的响应变量或函数

get:依赖收集

set:依赖更新

e42ab90b0abc4e89bbd3799c83fddd2c.png

相关文章
|
1天前
|
JSON 数据可视化 前端开发
vue3+threejs+koa可视化项目——模型文件上传(第四步)
vue3+threejs+koa可视化项目——模型文件上传(第四步)
15 7
|
1天前
|
JSON 数据可视化 数据库
vue3+threejs+koa可视化项目——实现登录注册(第三步)
vue3+threejs+koa可视化项目——实现登录注册(第三步)
18 5
|
1天前
|
JavaScript 数据可视化 算法
vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)
vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)
16 6
|
3天前
|
存储 JavaScript 前端开发
【Vue】绝了!这生命周期流程真...
【Vue】绝了!这生命周期流程真...
|
10天前
|
JavaScript 算法 前端开发
vue3和vue2的区别都有哪些
【4月更文挑战第15天】Vue3与Vue2在响应式系统(Proxy vs. Object.defineProperty)、组件模块化(Composition API vs. Options API)、数据变化检测(Reactive API vs. $watch)、虚拟DOM算法(基于迭代 vs. 基于递归)及Tree-Shaking支持上存在显著差异。Vue3的改进带来了更好的性能和灵活性,适合追求新技术的项目。Vue2则因其成熟稳定,适合维护大型项目。选择版本需根据项目需求、团队情况和技术追求来决定。
13 0
|
11天前
|
JavaScript
vue3+vite项目配置ESlint
vue3+vite项目配置ESlint
12 0
|
11天前
乾坤子应用配置(vue3+vite)
乾坤子应用配置(vue3+vite)
17 0
|
6月前
|
JavaScript
vue 的实例生命周期
vue 的实例生命周期
33 0
|
4月前
|
JavaScript
vue 的实例生命周期
vue 的实例生命周期
|
4月前
|
JavaScript 前端开发 开发者
vue实例、指令、生命周期
vue实例、指令、生命周期
36 1