Vue3 的生命周期钩子

admin5个月前 (06-04)it知识347

Vue3 的生命周期钩子函数是组件从创建到销毁过程中各个阶段的关键节点,以下是主要特点和使用方式:

一、核心生命周期钩子(Composition API)

setup()

替代了 Vue2 的 beforeCreate 和 created 钩子

是组合式 API 的入口点,在此初始化响应式数据

挂载阶段

onBeforeMount:DOM 挂载前触发,此时模板已编译但未渲染

onMounted:组件挂载完成后调用,可访问 DOM 元素

更新阶段

onBeforeUpdate:数据变化后,DOM 更新前执行

onUpdated:DOM 更新完成后触发

卸载阶段

onBeforeUnmount:组件卸载前调用(原 Vue2 的 beforeDestroy)

onUnmounted:组件卸载后执行清理操作

二、父子组件执行顺序

挂载阶段:

父 setup → 父 onBeforeMount → 子 setup → 子 onBeforeMount → 子 onMounted → 父 onMounted

更新阶段:

父 onBeforeUpdate → 子 onBeforeUpdate → 子 onUpdated → 父 onUpdated

卸载阶段:

父 onBeforeUnmount → 子 onBeforeUnmount → 子 onUnmounted → 父 onUnmounted

三、注意事项

在 setup() 中使用生命周期需要显式导入

服务端渲染时 beforeMount/mounted 等钩子不会执行

避免在 updated 钩子中修改状态,可能导致无限循环

四、与 Vue2 的主要区别

钩子名称变化:destroyed → unmounted

新增调试钩子:onRenderTracked/onRenderTriggered

组合式 API 提供了更灵活的生命周期管理方式


标签: 分享IT知识

相关文章

敏捷开发

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可...

收集需求

在一个阳光明媚的周末,一家软件开发公司决定为他们的产品添加新功能。产品经理决定召集团队成员进行一次需求收集会议,以便更好地了解用户需求并为未来的开发做好准备。会议当天,团队成员聚集在会议室,桌上放着一...

如果百度不收录,如何提高网站人气

假设你是一个新兴的瑜伽品牌,你创建了一个网站来宣传你的瑜伽课程和品牌。然而,你发现百度搜索引擎并没有收录你的网站,这导致你的网站流量和人气较低。以下是你可以采取的一些策略来提高网站人气:优化网站结构:...

暴风雨

暴风雨来临之前,天空中弥漫着一股压抑的气息。乌云密布,仿佛覆盖着一片灰暗的帷幕,将整个天地都笼罩在一片阴沉的氛围中。狂风大作,吹拂着路上的尘土和枝叶,让人感到一阵阵的凉意。突然,一声炸雷打破了寂静,紧...

超强台风的夜

夜晚,城市被一阵猛烈的台风席卷,整个世界仿佛被调成了静音模式。风声如同野兽的怒吼,呼啸着穿过大街小巷,与这座城市的一切进行着激烈的对话。雨滴如铁豆,砸在窗户上,发出沉闷的声响,宛如古老的战鼓,宣告着战...

黄金秋季

黄金秋季,这是一个充满色彩和韵味的季节。天空湛蓝,阳光明媚,微风轻拂,树叶由绿变黄,由黄变红,最终落叶归根。这是一个大自然最美丽的时刻,一切都在这一刻达到了高潮。秋天的阳光特别柔和,它不像夏天那样灼热...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。