【vue3|第13期】深入了解Vue3生命周期:管理组件的诞生、成长与消亡

日期:2024年6月22日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006

说在最前面:本文 vue3 的示例代码,在没有另外声名的情况下,均采用 <script setup> 组合式代码风格,风格统一,避免混乱,请各位新老食客放心食用哈 ^ _ ^


文章目录

  • 一、前言
  • 二、组件的生命周期是什么?
  • 三、组件的生命周期各个阶段
    • 1、创建阶段:
    • 2、挂载阶段:
    • 3、更新阶段:
    • 4、卸载阶段:
  • 四、vue2和vue3生命周期的对比
  • 五、如何使用生命周期钩子函数
    • 1、选项式示例
    • 2、组合式示例
  • 六、总结


在这里插入图片描述


一、前言

Vue.js 的世界中,生命周期更像是一段旅程从出生到成长,再到衰老和最终的归宿。在开发应用程序时,组件的生命周期管理是一个非常重要的环节。正确地使用生命周期钩子,可以帮助我们更好地了解组件从创建、运行到卸载的过程,从而实现对组件状态的合理控制。

二、组件的生命周期是什么?

简单来说,生命周期就是一个组件从创建到卸载的整个过程。在这个过程中,Vue3 为我们提供了一系列的钩子函数,让我们可以在不同阶段介入并进行相应的处理

三、组件的生命周期各个阶段

1、创建阶段:

  • setup():这是Vue3新增的生命周期钩子,用于替代Vue2中的 beforeCreatecreated 钩子。在组件被创建之前,setup() 函数会被执行。它是响应式系统的入口,可以在其中声明响应式状态计算属性方法等。

2、挂载阶段:

  • onBeforeMount()组件挂载到 DOM 之前执行。此时,模板已经编译完成,但尚未挂载到实际的 DOM 元素上。
  • onMounted()组件挂载到 DOM 后执行。此时,组件已经渲染到实际的DOM元素上,可以执行DOM操作。

3、更新阶段:

  • onBeforeUpdate()在组件的数据发生变化,但尚未重新渲染 DOM 之前执行。此时,可以访问到更新前的 DOM 元素。
  • onUpdated()组件重新渲染 DOM 后执行。此时,组件已经完成了更新,可以访问到更新后的 DOM 元素

4、卸载阶段:

  • onBeforeUnmount()在组件即将被卸载之前执行。此时,组件仍然完全可用,但即将被销毁。
  • onUnmounted()组件被卸载后执行。此时,组件已经被销毁,所有的事件监听器、子组件等都被移除。

四、vue2和vue3生命周期的对比

网上资料层次不齐,有些vue2和vue3的生命周期混乱一锅炖,所以这里我给大家整理了一份生命周期对比图,希望可以让各位老铁不再为其所困惑。
在这里插入图片描述
Vue 3 的设计确实令人欣赏,其组件的卸载挂载过程体现了设计上的严谨性和美感,这种“前后呼应”的对称美不仅提高了开发效率,也增强了代码的可读性和可维护性。

五、如何使用生命周期钩子函数

在Vue3中,我们可以使用选项API或组合API来访问和使用生命周期钩子函数。在使用选项API时,我们可以直接在组件选项中定义生命周期钩子函数。而在使用组合API时,我们需要从Vue中导入相应的生命周期钩子函数,并在setup()函数中使用它们。

1、选项式示例

<script>  
export default {  beforeMount() {  // 组件挂载前的行为  },  mounted() {  // 组件挂载后的行为  },  beforeUpdate() {  // 组件更新前的行为  },  updated() {  // 组件更新后的行为  },  beforeUnmount() {  // 组件卸载前的行为  },  unmounted() {  // 组件卸载后的行为  },  // 其他选项如 data、methods、computed 等...  
};  
</script>  <style>  
/* 组件样式 */  
</style>

2、组合式示例

  • export default + setup()
<script>
import { onBeforeCreate, onCreated, onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } from 'vue';export default {setup() {onBeforeMount(() => {// 组件挂在前的行为});onMounted(() => {// 组件挂在后的行为});onBeforeUpdate(() => {// 组件更新前的行为});onUpdated(() => {// 组件更新后的行为});onBeforeUnmount(() => {// 组件卸载前的行为});onUnmounted(() => {// 组件卸载后的行为});}
};
</script>
  • <script setup>
<script setup>
import { onBeforeCreate, onCreated, onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } from 'vue';onBeforeMount(() => {// 组件挂在前的行为
});onMounted(() => {// 组件挂在后的行为
});onBeforeUpdate(() => {// 组件更新前的行为
});onUpdated(() => {// 组件更新后的行为
});onBeforeUnmount(() => {// 组件卸载前的行为
});onUnmounted(() => {// 组件卸载后的行为
});
</script>

六、总结

Vue3生命周期管理 是我们在开发过程中不可或缺的一部分,通过了解生命周期各个阶段的作用,我们可以更好地安排组件的状态管理业务逻辑。同时,注意生命周期钩子的执行顺序并发执行情况,可以避免在实际开发中出现逻辑错误。


参考文章:

  • Vue.js

版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/139878997

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/32486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经科学原理精解【1】

文章目录 神经系统组成神经系统两类细胞脑组织基本结构参考资料 神经系统组成 神经系统由中驱神经系统和外围神经系统组成。中驱神经系统包括脑和脊髓。脑的主要功能是大脑、小脑和脑干。外围神经系统由位于脑和脊髓之外的神经和神经细胞组成。 神经系统两类细胞 神经元 感知…

基于深度学习的边缘检测

基于深度学习的边缘检测 边缘检测是计算机视觉中的一项基本任务&#xff0c;旨在识别图像中像素值变化显著的区域&#xff0c;即边缘。传统的边缘检测算法&#xff08;如Sobel、Canny等&#xff09;通过滤波器和梯度运算来检测边缘&#xff0c;而基于深度学习的方法则通过训练…

【SSM】医疗健康平台-管理端-检查组管理

技能目标 掌握新增检查组功能的实现 掌握查询检查组功能的实现 掌握编辑检查组功能的实现 掌握删除检查组功能的实现 体检的检查项种类繁多&#xff0c;为了方便管理和快速筛选出类别相同的检查项&#xff0c;医疗健康将类别相同的检查项放到同一个检查组中进行管理&#…

VMware ESXi 主机的健康检查常用命令

使用root登录esxi 主机&#xff0c;然后运行下面的一些命令&#xff0c;可以对ESXi的健康状态有个基本了解&#xff1a; 检查主机资源利用情况&#xff1a; esxtop: 实时查看主机资源使用情况&#xff0c;包括CPU、内存、磁盘和网络。esxcli vm process list: 列出当前在主机上…

【CV炼丹师勇闯力扣训练营 Day8】

CV炼丹师勇闯力扣训练营 代码随想录算法训练营第8天 ● 344.反转字符串 ● 541. 反转字符串II ● 卡码网&#xff1a;54.替换数字 一、344 反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额…

# Kafka_深入探秘者(1):初识 kafka

Kafka_深入探秘者&#xff08;1&#xff09;&#xff1a;初识 kafka 一、kafka 特性 1、Kafka &#xff1a;最初是由 Linkedln 公司采用 Scala 语言开发的一个多分区、多副本并且基于 ZooKeeper 协调的分布式消息系统&#xff0c;现在已经捐献给了 Apache 基金会。目前 Kafka…

Python基础教程(三十一):pyecharts模块

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝💝💝如有需要请大家订阅我的专栏【Python系列】哟!我会定期更新相关系列的文章 💝💝💝关注!关注!!请…

代码随想录leetcode200题之单调栈

目录 1 介绍2 训练3 参考 1 介绍 本博客用来记录代码随想录leetcode200题之单调栈相关题目。 2 训练 题目1&#xff1a;739. 每日温度 解题思路&#xff1a;单调栈模型–找到数组中下一个更大数。从右到左遍历&#xff0c;保留更大值&#xff0c;因此是一个单调递减的栈。 …

MyBatis-Plus入门教程(一)

MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上为其提供了许多便捷功能&#xff0c;使开发者能够更快速、高效地进行数据库操作。 MyBatis-Plus 简介 1. 什么是 MyBatis-Plus&#xff1f; MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBa…

google-自我插件

1. Bitwarden 密码管理器 2. React Developer Tools 3. Vue.js devtools 4. YouTube™ 双字幕 5. 沉浸式翻译 - 网页翻译插件 6. FeHelper(前端助手) 7. IDM Integration Module 8. 待续…

如何使用kimi智能助手:您的智能生活小助手

Kimi智能助手是一款功能强大的AI工具&#xff0c;旨在帮助用户提高工作效率和生活品质。下面小编将详细介绍如何使用Kimi智能助手&#xff0c;涵盖其主要功能以及一些实用技巧。 一、Kimi智能助手的主要功能 多语言对话能力&#xff1a;Kimi擅长中文和英文的对话&#xff0c;可…

探索计算机视觉(人工智能重要分支)的发展与应用

引言 在当今快速发展的科技时代&#xff0c;计算机视觉作为人工智能领域的重要分支&#xff0c;正日益成为各行各业不可或缺的关键技术。从简单的图像处理到复杂的智能系统&#xff0c;计算机视觉的发展不仅改变了我们看待世界的方式&#xff0c;也深刻影响着工业、医疗、交通等…

Windows安装配置jdk和maven

他妈的远程连接不上公司电脑&#xff0c;只能在家重新配置一遍&#xff0c;在此记录一下后端环境全部配置 Windows安装配置JDK 1.8一、下载 JDK 1.8二、配置环境变量三、验证安装 Windows安装配置Maven 3.8.8一、下载安装 Maven并配置环境变量二、设置仓库镜像及本地仓库三、测…

2024最新版Python 3.12.4安装使用指南

2024最新版Python 3.12.4安装使用指南 2024最新版Python 3.12.4安装使用指南0. Python的受欢迎程度1. 安装最新版Python 3.12.42. 验证Python 3.12.4版本3. 验证Python功能4. 使用IDLE交互式开发模式5. 安装Python扩展库相关阅读&#xff1a; By Jackson 2024最新版Python 3.12…

11.1JavaEE——Spring MVC的核心类和注解(一)DispatcherServlet

一、DispatcherServlet作用 DispatcherServlet是Spring MVC的核心类&#xff0c;也是Spring MVC的流程控制中心&#xff0c;也称为Spring MVC的前端控制器&#xff0c;它可以拦截客户端的请求。拦截客户端请求之后&#xff0c;DispatcherServlet会根据具体规则将请求交给其他组…

java基于ssm+jsp 汽车在线销售系统

1 前台功能模块 网站首页 网页首页汽车在线销售系统模块如下&#xff1a;首页、汽车信息、新闻资讯、留言反馈、我的收藏管理等功能图1 图1网页首页 网页前台车辆信息效果图如图2所示 图2 车辆信息界面图 2 管理员功能模块 管理员输入个人的账号、密码登录系统&#xff0c…

压力测试

1.什么是压力测试 压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测都是为了系统在线上的处理能力和稳定性维持在一个标准范围内&#xff0c;做到心中有数 使用压力测试&#xff0c;我们有希望找到很多种用其他测试方法更难发现的错误&#…

基于matlab的K-means聚类图像分割

1 原理 K-means聚类算法在图像分割中的应用是基于一种无监督的学习方法&#xff0c;它将图像中的像素点或特征区域划分为K个不同的簇或类别。以下是K-means聚类算法用于图像分割的原理&#xff0c;包括步骤和公式&#xff1a; 1.1 原理概述 选择簇的数量(K)&#xff1a; 首先…

YOLOv9基础 | 实时目标检测新SOTA,手把手带你深度解析yolov9论文!

前言:Hello大家好,我是小哥谈。YOLOv9是Chien-Yao Wang等人提出的YOLO系列的最新版本之一(截止到目前,YOLOv10已发布),于2024年2月21日发布。它是 YOLOv7的改进版本,两者均由Chien-Yao Wang及其同事开发。本节课就以YOLOv9论文为基础带大家深入解析YOLOv9算法。🌈 …

浏览器-服务器架构 (BS架构) 详解

目录 前言1. BS架构概述1.1 BS架构的定义1.2 BS架构的基本原理 2. BS架构的优势2.1 客户端简化2.2 易于更新和维护2.3 跨平台性强2.4 扩展性高 3. BS架构的劣势3.1 网络依赖性强3.2 安全性问题3.3 用户体验局限 4. BS架构的典型应用场景4.1 企业内部应用4.2 电子商务平台4.3 在…