Vue3 生命周期

描述

每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。
在这里插入图片描述

初始化、挂载:

选项式组合式描述
setupsetupVue3 新增
beforeCreate-组件实例对象还未创建
使用场景:通常用于插件开发中执行一些初始化任务
created-实例对象创建完成
使用场景:获取数据请求、加载 loading
注意:此时获取不到dom元素,也就是 this.$el 为 undefined
beforeMountonBeforeMount挂载DOM(未执行渲染、更新,dom未创建)
使用场景:结束 loading
mountedonMountedDOM挂载完毕(可获取访问数据和dom元素)
使用场景:进行 dom 操作

更新:

选项式组合式描述
beforeUpdateonBeforeUpdate更新前,可用于获取更新前各种状态
updatedonUpdated更新后,所有状态已是最新

销毁(非兼容 Vue2):
使用场景:销毁定时器、组件监听、事件监听等等会造成内存泄漏的东西

选项式组合式描述
beforeUnmountonBeforeUnmount销毁前
unmountedonUnmounted组件已销毁

缓存:

选项式组合式描述
activatedonActivatedkeep-alive 缓存的组件激活。
该钩子在服务器端渲染期间不被调用。
deacticatedonDeactivatedkeep-alive 缓存的组件停用。
该钩子在服务器端渲染期间不被调用。

组件调试:

选项式组合式描述
renderTrackonRenderTrack收集依赖触发的钩子
renderTriggeronRenderTrigger修改更新触发的钩子

使用

选项式:

<script lang="ts">
export default {
  beforeCreate() {},
  created() {},

  // 如果存在 <script setup lang="ts"> 语法糖,此处setup钩子函数会报错
  setup() {
    console.log("setup");
  },
};
</script>

组合式:
注意:setup语法糖中没有 beforeCreate、created 钩子函数,且其他钩子函数多了on前缀

<script setup lang="ts">
import { onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } from "vue";

// 初始化:
console.log("setup");
onBeforeMount(() => {});
onMounted(() => {});

// 更新:
onBeforeUpdate(() => {});
onUpdated(() => {});

// 销毁
onBeforeUnmount(() => {});
onUnmounted(() => {});
</script>
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值