Skip to content

组合式api生命周期

  • 组合式api的生命周期与vue2的生命周期类似,但是也有一些区别。
  • onBeforeMount 在组件挂载到DOM之前调用:当这个钩子被调用时,组件已经完成了其响应式状态的设置,但还没有创建 DOM 节点。它即将首次执行 DOM 渲染过程。
  • onMounted 在组件挂载到DOM之后调用
  • onBeforeUpdate 在组件更新之前调用
  • onUpdated 在组件更新之后调用:父组件的更新钩子将在其子组件的更新钩子之后调用。这个钩子会在组件的任意 DOM 更新后被调用,这些更新可能是由不同的状态变更导致的
  • onBeforeUnmount 在组件卸载之前调用
  • onUnmounted 在组件卸载之后调用:一个组件在以下情况下被视为已卸载:其所有子组件都已经被卸载。所有相关的响应式作用 (渲染作用以及 setup() 时创建的计算属性和侦听器) 都已经停止。 可以在这个钩子中手动清理一些副作用,例如计时器、DOM 事件监听器或者与服务器的连接。
  • onErrorCaptured 在组件捕获错误时调用
  • onRenderTracked 在组件依赖项被访问时调用
  • onRenderTriggered 在组件依赖项被触发时调用
  • onActivated 在组件被激活时调用
  • onDeactivated 在组件被停用时调用
  • onServerPrefetch 在服务器端组件预取时调用
vue
<template>
  <div>
    <button @click="incrementCount">Increment</button>
    <p>Count: {{ count }}</p>
  </div>
</template>

<script setup>
import { onMounted, onUnmounted, ref } from 'vue';

const count = ref(0);
const incrementCount = () => {
  count.value++;
};

onBeforeMount(() => {
  console.log('Count hook onBeforeMount');
});
onMounted(() => {
  console.log('Count hook mounted');
});
onBeforeUpdate(() => {
  console.log('Count hook onBeforeUpdate');
});
onUpdated(() => {
  console.log('Count hook onUpdated');
});
onBeforeUnmount(() => {
  console.log('Count hook onBeforeUnmount');
});

onUnmounted(() => {
  console.log('Count hook unmounted');
});
</script>

Released Under The MIT License.