Vue3 的生命周期

news/2025/3/30 6:33:11/

在 Vue3 中,生命周期钩子函数有所改变。以下是 Vue3 中的生命周期钩子函数及其作用:

  1. beforeCreate:在实例被创建之前执行,此时 data、methods、computed 和 watch 等属性都还未初始化。

  2. created:在实例创建完成后执行,此时 data、methods、computed 和 watch 等属性已经被初始化,可以在这个钩子函数中访问和修改这些属性。

  3. beforeMount:在挂载开始之前执行,此时模板编译已经完成,但尚未将生成的 DOM 挂载到页面中。

  4. mounted:在挂载完成后执行,此时组件已经被渲染到页面中,可以在这个钩子函数中访问组件的 DOM 元素。

  5. beforeUpdate:在组件更新之前执行,此时数据已经更新但尚未重新渲染组件。

  6. updated:在组件更新之后执行,此时组件已经重新渲染,可以在这个钩子函数中访问和操作更新后的 DOM 元素。

  7. beforeUnmount:在组件卸载之前执行,此时组件实例仍然可用,可以访问组件的 data 和 methods 等属性。

  8. unmounted:在组件卸载之后执行,此时组件实例已经被销毁,可以在这个钩子函数中执行一些清理工作。

  9. errorCaptured:在捕获到组件内部错误时执行,可以在这个钩子函数中处理错误或者在控制台中输出错误信息。

需要注意的是,在 Vue3 中,activated 和 deactivated 这两个生命周期钩子函数被移除了,取而代之的是使用 setup 函数中的 onActivated 和 onDeactivated 函数来实现相同的功能。另外,Vue3 还新增了一个全局钩子函数:onRenderTrackedonRenderTriggered,可以用于追踪组件的渲染过程。

<template><div><p id="dom">{{msg}}</p></div>
</template><script>// @ is an alias to /srcimport { reactive, toRefs, onBeforeMount, onMounted, onBeforeUpdate, onUpdated } from "vue";export default {name: 'name',setup() {const data = reactive({msg: '你好',})// 数据渲染前onBeforeMount(() => {console.log('onBeforeMount', document.querySelector('#dom'));})// 数据渲染后onMounted(() => {console.log('onMount', document.querySelector('#dom'));setTimeout(() => {data.msg = 'xxxxxxx';}, 2000)})// 数据更新前onBeforeUpdate(() => {console.log('onBeforeUpdate');})// 数据更新后onUpdated(() => {console.log('onUpdated');})return {...toRefs(data),}},}
</script>


http://www.ppmy.cn/news/61151.html

相关文章

「Codeforces」C. Differential Sorting

C. Differential Sorting https://codeforces.com/contest/1635/problem/C 题目描述 你有一个大小为 n n n 数组&#xff0c;可以选择 3 个索引 x , y , z x,y,z x,y,z &#xff08; 1 ≤ x < y < z ≤ n 1\leq x \lt y \lt z \leq n 1≤x<y<z≤n&#xff09;&a…

【关于C++中----异常】

文章目录 一、C语言中处理错误的方式二、C异常概念三、异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3 异常安全3.4 异常规范 四、自定义异常体系五、C标准库的异常体系六、异常的优缺点 一、C语言中处理错误的方式 C语言中常见的错误类型包括&#xff1a;语法错误、逻…

【Linux】Linux下的基本指令

&#x1f61b;作者&#xff1a;日出等日落 &#x1f4d8; 专栏&#xff1a;数据结构 人生就是这样&#xff0c;要耐的住寂寞&#xff0c;才守得住繁华。 —— 七堇年 目录 Linux的基本命令(常用)&#xff1a; ls 指令&#xff1a; pwd指…

模拟银行账户转账业务

文章目录 一、需求分析二、核心代码1. 业务层添加 Spring 事务管理2. 配置类中设置事务管理器3. 开启注解式事务驱动 三、相关截图 一、需求分析 需求&#xff1a; 实现任意两个账户间转账操作&#xff0c;要求当转账过程出现异常时&#xff0c;转账方与被转账方的转账操作同时…

vue组件通信方式汇总

之前学习了组件通信的6中方式1-props&#xff1a;使用场景&#xff1a;【父组件给子组件传递数据】 传递数据类型&#xff1a; 可能是函数&#xff1a;实质是子组件想给父组件传递数据&#xff1b; 可能不是函数&#xff1a;实质就是父组件给子组件传递数据 特殊情况&#xff1…

springboot的创建和使用

目录 1.springboot的优点 2.springboot项目创建 2.1使用idea创建 2. 2 ⽹⻚版创建 3.项⽬⽬录介绍和运⾏ 3.1运行项目 3.2输出hello world 4.注意事项 1.路径 2.约定大于配置 spring的诞生为了简化java程序,springboot的诞生为了简化spring程序开发 1.springboot的优点…

ChatGLM-6B模型微调实战(以 ADGEN (广告生成) 数据集为例,序列长度达 2048)

kingglory/ChatGLM-6B 项目地址 1 介绍 对于 ChatGLM-6B 模型基于 P-Tuning v2 的微调。P-Tuning v2 将需要微调的参数量减少到原来的 0.1%&#xff0c;再通过模型量化、Gradient Checkpoint 等方法&#xff0c;差不多需要 7GB或则8GB 显存即可运行。 2 环境 2.1 python …

删除游戏-类似打家劫舍

198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 1 熟悉打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被…