Appearance
组合式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>