Vue前端
相关推荐
顶部

vue3 生命周期

在了解 vue3 生命周期前,建议先阅读vue2 生命周期钩子

生命周期一览

VUE3 官网生命周期参考

生命周期时机说明
setup实例创建之前
beforeCreate实例初始化完成之后
created实例处理完所有与状态相关的选项后
beforeMount被挂载之前服务端渲染不可用
mounted被挂载之后服务端渲染不可用
beforeUpdate响应式状态变更而更新其 DOM 树之前服务端渲染不可用
updated响应式状态变更而更新其 DOM 树之后服务端渲染不可用
beforeUnmount被卸载之前服务端渲染不可用
unmounted被卸载之后服务端渲染不可用
errorCaptured捕获了后代组件传递的错误时
renderTracked在一个响应式依赖被组件的渲染作用追踪后仅在开发模式下可用,服务端渲染不可用
renderTriggered在一个响应式依赖被组件触发了重新渲染之后仅在开发模式下可用,服务端渲染不可用
activatedKeepAlive 中,被插入到 DOM 中时服务端渲染不可用
deactivatedKeepAlive 中,从 DOM 中被移除时服务端渲染不可用
serverPrefetch在服务器上被渲染之前仅会在服务端渲染中执行

生命周期图示:

![alt text](assets/Vue3LifeCycle/image.png =600x)

setup

setup() 钩子是在组件中使用组合式 API 的入口。

vue
<template>
  <button @click="count++">{{ count }}</button>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const count = ref(0);
    return {
      count,
    };
  },
};
</script>

对于结合单文件组件使用的组合式 API,推荐通过 <script setup> 以获得更加简洁及符合人体工程学的语法。

vue
<template>
  <button @click="count++">{{ count }}</button>
</template>

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

const count = ref(0);
</script>

使用生命周期钩子

vue3 中可以使用 vue2 的对象属性方式来声明生命周期钩子,但是更加推荐在 setup 中完成相关生命周期钩子的注册:

vue
<script>
// 引入生命周期钩子对应的函数名
import { onBeforeMount, onUpdated, onBeforeUnmount } from 'vue';

export default {
  setup() {
    onBeforeMount(() => {
      // ...
    });
    onUpdated(() => {
      // ...
    });
    onBeforeUnmount(() => {
      // ...
    });
  },
};
</script>

参考

生命周期选项

✨相关推荐✨

✨ Vue2 生命周期✨ Vue 指令的注意事项✨ 多种方式创建 Vue 项目✨ Vue组件间通信✨ Vite 配置一览