VUE3生命周期钩子

news2024/9/23 9:33:23

生命周期

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 操作相关的错误。

在这里插入图片描述

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

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

相关文章

PowerBi 柱形图,数据标签无法显示在端外

如图 即使设置了“数据标签”显示“端外“&#xff0c;仍然不作用。 原因其实是因为Y轴的数据范围设置不当&#xff0c;如图&#xff0c;当前Y轴范围是0到自动 只需要修改为最大和最小值都是自动即可&#xff0c;选中0 按backspace键删除&#xff0c;然后&#xff0c;鼠标在任意…

Parade Series - 3D Modeling

FBX FBX&#xff08;Filmbox&#xff09;文件格式是一种广泛使用的三维模型和动画文件格式&#xff0c;由Autodesk开发和维护。 FBX格式支持多种3D数据类型&#xff0c;包括几何、材质、纹理、动画、骨骼、灯光和摄像机等;OBJ MTL OBJ文件格式是一种用于表示三维几何形状的标…

OpenAI 神秘模型「草莓」预计今秋推出,ChatGPT 将迎重大升级|TodayAI

有外媒报道指出&#xff0c;OpenAI 内部代号为「Strawberry&#xff08;草莓&#xff09;」的 AI 模型即将在今年秋季面世。这一消息引发了业内广泛关注&#xff0c;被认为可能会为 ChatGPT 带来今年最重要的升级。 「草莓」模型的强大能力与应用潜力 据《The Information》报…

EPLAN中绘制黑盒的具体方法

EPLAN中绘制黑盒的具体方法 对于某些电气元件没有EDZ部件库时,可以自己绘制黑盒来解决,具体方法可参考以下内容: 如下图所示,打开EPLAN软件,在项目中新建一页多线原理图, 如下图所示,点击插入----盒子/连接点/安装板--------黑盒, 设置所需的参数和属性,然后放置在图框绘制…

算法入门-深度优先搜索1

第六部分&#xff1a;深度优先搜索 144.二叉树的前序遍历&#xff08;简单&#xff09; 题目&#xff1a;给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3] 第一种思路&am…

AtCoder Beginner Contest 366(D~E题解)

闲来无事去vp了一下之前放假没打的比赛&#xff0c;感觉需要总结的也就这两题吧&#xff0c;a&#xff0c;c都是水题&#xff0c;b只不过是实现有一点难&#xff0c;并不是很难写&#xff0c;d是一个需要自己推的三维前缀和&#xff0c;e也是一种前缀和&#xff0c;我当时没想到…

WEB渗透Win提权篇-白名单提权

提权工具合集包&#xff08;免费分享&#xff09;&#xff1a; 夸克网盘分享 往期文章 WEB渗透Win提权篇-提权工具合集-CSDN博客 WEB渗透Win提权篇-RDP&Firewall-CSDN博客 WEB渗透Win提权篇-MSSQL-CSDN博客 WEB渗透Win提权篇-MYSQL-udf-CSDN博客 WEB渗透Win提权篇-Acc…

什么是代码审查(Code Review)?它有什么好处?

代码审查&#xff08;Code Review&#xff09;是软件开发过程中一个至关重要的环节&#xff0c;它指的是团队成员之间相互检查、评估代码的过程。这一过程不仅涉及对代码质量的把控&#xff0c;更是提升团队整体编程能力、确保软件安全性的重要手段。在本文中&#xff0c;我们将…

CSRF 概念及防护机制

概述 CSRF&#xff08;Cross-Site Request Forgery&#xff09;&#xff0c;即跨站请求伪造&#xff0c;是一种网络攻击方式。在这种攻击中&#xff0c;恶意用户诱导受害者在不知情的情况下执行某些操作&#xff0c;通常是利用受害者已经登录的身份&#xff0c;向受害者信任的…

我是如何在一分钟之内,不用多次交互AI,就完成了指定任务

本文背景 为什么我的AI不听话&#xff1f; 为什么我用AI写知乎文、视频文案、豆瓣影评、工作日报、论文、商业策划案、标书、代码都一直得不到想要的效果&#xff1f; 为什么我的AI生成的都是没有价值的口水文&#xff1f; 大象经过大量的AI实战经验&#xff0c;给出了这些问题…

ESP32-C3在MQTT访问时出现“Last error code reported from esp-tls: 0x8001”和问题的分析(3)

接前一篇文章:ESP32-C3在MQTT访问时出现“Last error code reported from esp-tls: 0x8001”和问题的分析(2) 上一回讲解了所遇问题log中的“esp-tls: couldnt get hostname for :iot-emqx-pre.nanshe-tech.com: getaddrinfo() returns 202, addrinfo=0x0”,再来回顾一下。…

USB:物理接口

USB&#xff1a;物理接口 物理接口 从高级概述角度来看&#xff0c;USB 的物理接口具有两个组件&#xff1a;线缆和连接器。这些连接器将设备连接到主机上。 一个 USB 线缆包含由一个绝缘套保护的多个组件。该绝缘套下面是一个包含了一个带有铜面的外部扩展板。 外部扩展板内包…

为什么现在人工智能大部分都用python而不是其他软件呢?

大部分人都选择使用Python而不是其他软件&#xff0c;主要是因为Python具有多方面的优势&#xff0c;这些优势使其在众多编程语言中脱颖而出&#xff0c;成为许多领域&#xff0c;特别是IT和人工智能领域的首选。以下是几个主要原因&#xff1a; 1. 简单易学 Python的语法简洁…

PMP备考3A的心得分享

首先&#xff0c;每一位报考的都会收到一份学习计划表&#xff0c;一定要仔细阅读这张表&#xff0c;并与自己的时间结合起来&#xff0c;看是否会有很大的冲突&#xff0c;如果有&#xff0c;那么可以找老师帮忙解决。一般来说&#xff0c;学习计划表的时间安排是非常恰当的&a…

下载淘宝的短视频(通过第三方插件)

目录&#xff1a; 1、通过插件插件下载短视频 1&#xff09;获取“Microsoft Edge扩展” 2&#xff09;搜索“aix智能下载器” 3&#xff09;将插件钉在浏览器上 4&#xff09;嗅控并下载视频 2、从其他来源安装插件 1、通过插件插件下载短视频 1&#xff09;获取“M…

(二)Kafka离线安装 - Zookeeper下载及安装

一、下载 下载ZooKeeper之前&#xff0c;需要根据下载的Kafka版本&#xff0c;来确定ZooKeeper的版本。 Kafka官方地址&#xff1a;Apache Kafka 1、先下载源码版本&#xff0c;下载完后解压&#xff0c;在kafka-3.8.0-src\gradle目录下找到dependencies.gradle文件&#xff…

从 0 到 1 的Prompt 教程,来自Claude 官方,不会写 prompt的看这个足够

Claude 的强大&#xff0c;最近得到了很多网友的验证&#xff0c;甚至效果上面大有超越 GPT的许多声音。 所以从优秀的 Claude 中学习&#xff0c;将会是一个很好的起点。 这里&#xff0c;Claude 的开发者们提供了一个相当详细的 Prompt Engineering 教程。 这个教程能够全面…

USB3.2 摘录(13)

系列文章目录 USB3.2 摘录&#xff08;一&#xff09; USB3.2 摘录&#xff08;二&#xff09; USB3.2 摘录&#xff08;三&#xff09; USB3.2 摘录&#xff08;四&#xff09; USB3.2 摘录&#xff08;五&#xff09; USB3.2 摘录&#xff08;六&#xff09; USB3.2 摘录&…

SpringBoot JPA 语法大全

Keyword:为关键词 Sample:为直接用在方法名上的例子 JPQLsnipper:为JPQL,Query的写法的例子

redhat7.9安装zsh以及常用插件

1 安装zsh并更改默认终端 #1.安装软件包 yum -y install zsh git#2.更改默认终端 chsh -s /bin/zsh然后再退出下终端&#xff0c;重新登录用echo $SHELL 查看环境是否是/bin/zsh 2 配置oh-my-zsh #1.从git仓库中拉取oh-my-zsh git clone https://gitee.com/mirrors/oh-my-z…