VUE3生命周期钩子

生命周期

vue2的生命周期钩子

  • beforeCreate:开始初始化事件和生命周期,但还没有data、methods、computed、watch属性,也就是vue实例的挂载元素$el和数据对象data都为undefined,还未初始化。
    created:实完成数据挂载、事件绑定等;vue实例的数据对象data有了,dom树还未挂载。
    载入前
  • beforeMount:在挂载开始之前被调用,相关的 render 函数首次被调用,即编译模板准备渲染。
  • mounted:完成实例挂载,数据完成双向绑定;实际的DOM元素可用。
  • beforeUpdate:组件数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在这个钩子中进一步地更改状态,不会触发重新渲染。
  • updated:将data中的值更新到页面中;此时,组件 DOM 已经更新,绝对不要在这里再更新data。
  • beforeDestroy:在实例销毁之前调用。这一步,实例仍然是完全正常的。
  • destroyed:销毁后解绑所有东西;清除watcher、监听器、子组件实例等。

vue3的生命周期钩子

  • setup: 用于初始化组件数据和方法。它是组件实例化的早期阶段,在 beforeCreate 和 created 之间调用。
  • onBeforeMount: 在组件被挂载之前被调用;
  • onMounted: 相当于 Vue 2 的 mounted,在组件初次渲染完毕并创建DOM节点(以及所有同步的子组件都已挂载完,不含异步组件)之后被调用;
  • onBeforeUpdate: 在数据变化(响应式状态变更)时更新DOM树之前调用;
  • onUpdated:在数据变化(响应式状态变更)时更新DOM树之后调用;
  • onBeforeUnmount: 相当于 Vue 2 的 beforeDestroy,在组件实例被卸载之前调用;
  • onUnmounted: 相当于 Vue 2 的 destroyed,通常在这个钩子里处理一些副作用,例如计时器、DOM监听、与服务器的连接等。
  • onErrorCaptured: 捕获组件或子组件树中的错误,类似于 Vue 2 的 errorCaptured。
  • onRenderTracked:注册一个调试钩子,仅在开发模式下有效,当组件渲染过程中追踪到响应式依赖时调用。
  • onRenderTriggered:注册一个调试钩子,仅在开发模式下有效,当响应式依赖的变更触发了组件渲染时调用。
  • onActivated:如果组件实例是 <KeepAlive> 缓存树的一部分,当组件被插入到 DOM 中时调用。这个钩子在服务器端渲染期间不会被调用
  • onDeactivated:如果组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。这个钩子在服务器端渲染期间不会被调用
  • onServerPrefetch:异步函数,在组件实例在服务器上被渲染之前调用。

一、为什么vue3中没有 beforeCreated、created ?
vue3中并没有去掉 beforeCreated、created钩子,只是用 setup函数来代替created来初始化 data、methods、computed。也就是说在setup中,等同于组件实例的创建过程,因此可以将 setup理解为 beforeCreated、created 钩子。

二、为什么vue3的组合式API 更倾向使用 onMouted?
主要原因是可读性和可维护性。在组合式 API 中,可以将相关逻辑分组,并且更清晰地表达每块逻辑的依赖关系。虽然可以在setup 中直接执行异步操作来替代created 钩子的功能,但是使用onMounted来加载数据,确保只在 DOM 渲染之后加载,有助于避免出现和 DOM 操作相关的错误。

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值