vue3与vue2生命周期对比
目录
vue3生命周期图:
vue2生命周期图:
列表对比:
vue2 | vue3 |
beforeCreate | setup() |
created | setup() |
beforeMount | onBeforeMount |
mounted | onMounted |
beforeUpdate | onBeforeUpdate |
updated | onUpdated |
beforeDestroy | onBeforeUnmount |
destroyed | onUnmounted |
vue3组合式 API:生命周期钩子详解
- onMounted():注册一个回到函数,在组件挂在完成后执行。这个钩子在服务器端渲染期间不会被调用
<script setup> import { onMounted } from 'vue' onMounted(() => { console.info('初始化加载') }) </script>
- onUpdated() :注册一个回调函数,在组件因为响应式状态变更而更新其 DOM 树之后调用。这个钩子在服务器端渲染期间不会被调用。
- onUnmounted() : 注册一个回调函数,在组件实例被卸载之后调用。一个组件在以下情况下被视为已卸载:1、其所有子组件都已经被卸载。2、所有相关的响应式作用 (渲染作用以及
setup()
时创建的计算属性和侦听器) 都已经停止。<script setup> import { onMounted, onUnmounted } from 'vue' let intervalId onMounted(() => { intervalId = setInterval(() => { // ... }) }) // 组件卸载时清空定时器 onUnmounted(() => clearInterval(intervalId)) </script>
- onBeforeMount(): 注册一个钩子,在组件被挂载之前被调用。当这个钩子被调用时,组件已经完成了其响应式状态的设置,但还没有创建 DOM 节点。它即将首次执行 DOM 渲染过程。这个钩子在服务器端渲染期间不会被调用。
- onBeforeUpdate() : 注册一个钩子,在组件即将因为响应式状态变更而更新其 DOM 树之前调用。这个钩子可以用来在 Vue 更新 DOM 之前访问 DOM 状态。在这个钩子中更改状态也是安全的。这个钩子在服务器端渲染期间不会被调用。
- onBeforeUnmount() : 注册一个钩子,在组件实例被卸载之前调用。
- onErrorCaptured() : 注册一个钩子,在捕获了后代组件传递的错误时调用。
- onRenderTracked(): 注册一个调试钩子,当组件渲染过程中追踪到响应式依赖时调用。这个钩子仅在开发模式下可用,且在服务器端渲染期间不会被调用。
- onRenderTriggered():注册一个调试钩子,当响应式依赖的变更触发了组件渲染时调用。这个钩子仅在开发模式下可用,且在服务器端渲染期间不会被调用。
- onActivated():注册一个回调函数,若组件实例是 <KeepAlive> 缓存树的一部分,当组件被插入到 DOM 中时调用。这个钩子在服务器端渲染期间不会被调用。
- onDeactivated():注册一个回调函数,若组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。这个钩子在服务器端渲染期间不会被调用。
- onServerPrefetch(): 注册一个异步函数,在组件实例在服务器上被渲染之前调用。