深入探索挖掘vue3 生命周期

简介: 【10月更文挑战第10天】

Vue 3是一个用于构建用户界面的JavaScript框架,它提供了一套生命周期钩子函数,允许开发者在Vue实例的不同阶段执行特定的操作。以下是Vue 3生命周期的详细解析:

一、生命周期钩子函数

beforeCreate
在Vue实例被创建之前被调用。
此时,Vue实例的数据和事件都没有初始化,无法访问到props、data、methods和computed等属性。
created
在Vue实例被创建之后立即被调用。
此时,Vue实例已经完成了数据观测、属性和方法的运算,可以访问到props和data属性,但尚未挂载到DOM中。
常用于执行异步请求、事件监听器的注册等操作。
setup
在Vue 3中,setup函数在beforeCreate和created之前执行,用于初始化组件的数据和方法。
在setup函数中,可以使用reactive和ref等函数来创建响应式数据。
注意,setup函数中无法访问this,因为它在组件实例初始化之前执行。
beforeMount(或onBeforeMount)
在Vue实例被挂载到DOM之前被调用。
此时,模板编译已经完成,已经生成了一个虚拟DOM,并且即将被渲染到实际的DOM元素上。
可以在此阶段进行一些DOM相关的操作,如获取DOM节点、计算样式等。
mounted(或onMounted)
在Vue实例被挂载到DOM之后被调用。
此时,Vue实例已经被渲染到了实际的DOM元素上,可以访问到DOM节点和计算后的样式。
常用于执行一些非响应式的DOM操作,如第三方库的集成等。
beforeUpdate(或onBeforeUpdate)
在数据更新之前被调用。
此时,Vue实例的数据已经发生了改变,但是DOM还没有被重新渲染。
可以在此阶段进行一些组件的准备工作,如计算DOM节点的相关属性。
updated(或onUpdated)
在数据更新之后被调用。
此时,Vue实例的数据已经发生了改变,并且DOM已经被重新渲染。
常用于执行一些非响应式的DOM操作,如更新第三方库的状态等。
beforeUnmount(或onBeforeUnmount)
在Vue实例被销毁之前被调用。
此时,Vue实例尚未被销毁,但是DOM已经被移除。
可以在此阶段进行一些清理操作,如取消事件监听器和定时器等。
unmounted(或onUnmounted)
在Vue实例被销毁之后被调用。
此时,Vue实例已经被销毁,无法访问到组件实例和DOM元素。
常用于进行一些资源释放和清理操作。

二、特殊生命周期钩子函数

onActivated
在被包裹的组件被激活时调用。
onDeactivated
在被包裹的组件被停用时调用。
onErrorCaptured
当捕获一个来自子孙组件的异常时激活钩子函数。

三、总结

Vue 3的生命周期提供了丰富的钩子函数,允许开发者在组件的不同阶段执行自定义逻辑。通过合理利用这些生命周期钩子,可以编写出更加高效、可维护的Vue应用。同时,Vue 3还引入了一些新的特性,如setup函数和响应式API,使得开发过程更加灵活和高效。

目录
相关文章
|
8天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服
|
10天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1570 11
|
1月前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
15天前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1126 1
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
15天前
|
人工智能 Serverless API
AI助理精准匹配,为您推荐方案——如何快速在网站上增加一个AI助手
通过向AI助理提问的方式,生成一个技术方案:在网站上增加一个AI助手,提供7*24的全天候服务,即时回答用户的问题和解决他们可能遇到的问题,无需等待人工客服上班,显著提升用户体验。
1248 6
|
13天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
820 28
|
2天前
|
人工智能 关系型数据库 Serverless
1024,致开发者们——希望和你一起用技术人独有的方式,庆祝你的主场
阿里云开发者社区推出“1024·云上见”程序员节专题活动,包括云上实操、开发者测评和征文三个分会场,提供14个实操活动、3个解决方案、3 个产品方案的测评及征文比赛,旨在帮助开发者提升技能、分享经验,共筑技术梦想。
537 69
|
7天前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
578 3
|
3天前
|
移动开发 JavaScript 前端开发
💻揭秘!如何用 Vue 3 实现酷炫的色彩魔方游戏✨
本文分享了开发基于Canvas技术的小游戏"色彩魔方挑战"的完整过程。游戏旨在考验玩家的观察力和耐心,通过随机生成的颜色矩阵和一个变化点,玩家需在两幅画布中找出不同的颜色点。文章详细讲解了游戏的核心功能,包括随机颜色矩阵生成、点的闪烁提示、自定义配色方案等。此外,作者展示了使用Vue 3和TypeScript开发的代码实现,带领读者一步步深入了解游戏的逻辑与细节。
114 68
|
17天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
928 5