Vue onUpdated 周期函数不执行

发布时间 2023-06-24 01:21:19作者: Himmelbleu

如下图所示,当一个组件挂载完成之后,就有 beforeUpdateupdated 两个周期函数一直存在。“when data changes” 指的是组件依赖的响应式数据变化了才会执行这两个周期函数。

Vue 组件的生命周期函数

如果遇到了 onUpdated 周期函数不执行的情况,可能是因为你的组件没有依赖响应式数据,或者说你的响应式数据只会改变一两次。

子组件:

<script setup lang="ts">
import { onUpdated } from "vue";

defineProps({
  value: {
    type: String
  }
});

onUpdated(() => {
  console.log("onUpdated");
});
</script>

<template>
  <div></div>
</template>

父组件:使用子组件时给它绑定一个响应式数据 state,只要这个数据变化了,子组件的 onUpdated 函数就会执行。

<script setup lang="ts">
import { ref } from "vue";
import Test from "./components/Test.vue";

const state = ref("");
</script>

<template>
  <input v-model="state" />
  <Test :value="state" />
</template>