【Vue】生命周期一文详解
目录
一、beforeCreate
下面是一个beforeCreate的简单使用示例:
在控制台输出'before create hook'。
二、created
下面是一个created的简单使用示例:
在控制台输出'created hook'。
三、beforeMount
下面是一个beforeMount的简单使用示例:
在真实DOM生成后,页面会显示'hello world'。
四、mounted
下面是一个mounted的简单使用示例:
控制台输出组件的innerText。
五、beforeUpdate
下面是一个beforeUpdate的简单使用示例:
在调用changeMessage方法之后,控制台会输出'before update message: before update hook message'。
六、updated
下面是一个updated的简单使用示例:
在调用changeMessage方法之后,控制台会输出'updated message: hello world'。
七、beforeUnmount
下面是一个beforeUnmount的简单使用示例:
在组件DOM节点从页面中移除之前,控制台会输出'before unmount'。
八、unmounted
下面是一个unmounted的简单使用示例:
在组件DOM节点从页面中移除之后,控制台会输出'unmount'。
以上就是Vue3的各个生命周期钩子函数的详细解释和使用方法,希望可以对读者有所帮助。
Vue3是Vue.js的最新版本,其生命周期相对于Vue.js 2.x版本有所改变,本文将详细介绍Vue3的各个生命周期,包括其执行顺序、作用、使用方法以及配合代码案例
一、beforeCreate
beforeCreate钩子函数是在Vue3实例被创建之初执行的,此时Vue3实例中的数据和方法都还未初始化,因此在beforeCreate中无法访问到组件的data、computed、methods等属性。
下面是一个beforeCreate的简单使用示例:
<script>
export default {beforeCreate() {console.log('before create hook')}
}
</script>
在控制台输出'before create hook'。
二、created
created钩子函数是在Vue3实例被创建后立即执行的,此时Vue3实例中的数据已经被初始化,但是模板还未生成,因此在created中无法访问到组件的DOM节点。
下面是一个created的简单使用示例:
<script>
export default {created() {console.log('created hook')}
}
</script>
在控制台输出'created hook'。
三、beforeMount
beforeMount钩子函数在Vue3实例的模板挂载到真实DOM之前执行,此时Vue3实例已经将数据和模板联系起来,但是还未生成DOM节点,可以在此时修改数据,这样修改后的数据会在真实DOM生成后立即呈现出来。
下面是一个beforeMount的简单使用示例:
<template><div>{{ message }}</div>
</template><script>
export default {data() {return {message: 'before mount hook message'}},beforeMount() {this.message = 'hello world'}
}
</script>
在真实DOM生成后,页面会显示'hello world'。
四、mounted
mounted钩子函数在Vue3实例的模板已经挂载到真实DOM之后执行,此时Vue3实例已经生成了DOM节点,并将数据绑定到了DOM节点上,此时可以访问组件的DOM节点。
下面是一个mounted的简单使用示例:
<template><div ref="message">{{ message }}</div>
</template><script>
export default {mounted() {console.log(this.$refs.message.innerText)}
}
</script>
控制台输出组件的innerText。
五、beforeUpdate
beforeUpdate钩子函数在Vue3实例的数据发生改变,但是还未更新DOM节点之前执行,此时可以在beforeUpdate中获取到新的数据和旧的数据,以及修改之前的DOM节点状态。
下面是一个beforeUpdate的简单使用示例:
<template><div>{{ message }}</div>
</template><script>
export default {data() {return {message: 'before update hook message'}},methods: {changeMessage() {this.message = 'hello world'}},beforeUpdate() {console.log(`before update message: ${this.message}`)}
}
</script>
在调用changeMessage方法之后,控制台会输出'before update message: before update hook message'。
六、updated
updated钩子函数在Vue3实例的数据发生改变并且DOM节点已经更新之后执行,此时可以访问到最新的DOM节点状态。
下面是一个updated的简单使用示例:
<template><div>{{ message }}</div>
</template><script>
export default {data() {return {message: 'updated hook message'}},methods: {changeMessage() {this.message = 'hello world'}},updated() {console.log(`updated message: ${this.message}`)}
}
</script>
在调用changeMessage方法之后,控制台会输出'updated message: hello world'。
七、beforeUnmount
beforeUnmount钩子函数在Vue3实例被销毁之前执行,此时可以对Vue3实例进行一些清理工作,如清除定时器、取消订阅等操作。
下面是一个beforeUnmount的简单使用示例:
<template><div>{{ message }}</div>
</template><script>
export default {data() {return {message: 'before unmount hook message'}},mounted() {setTimeout(() => {this.$el.remove()}, 3000)},beforeUnmount() {console.log('before unmount')}
}
</script>
在组件DOM节点从页面中移除之前,控制台会输出'before unmount'。
八、unmounted
unmounted钩子函数在Vue3实例被销毁之后执行,此时Vue3实例已经从内存中移除,可以在此时清除定时器、取消订阅、释放内存等操作。
下面是一个unmounted的简单使用示例:
<template><div>{{ message }}</div>
</template><script>
export default {data() {return {message: 'unmount hook message'}},mounted() {setTimeout(() => {this.$el.remove()}, 3000)},unmounted() {console.log('unmount')}
}
</script>
在组件DOM节点从页面中移除之后,控制台会输出'unmount'。
以上就是Vue3的各个生命周期钩子函数的详细解释和使用方法,希望可以对读者有所帮助。
相关文章:
【Vue】生命周期一文详解
目录 一、beforeCreate 下面是一个beforeCreate的简单使用示例: 在控制台输出before create hook。 二、created 下面是一个created的简单使用示例: 在控制台输出created hook。 三、beforeMount 下面是一个beforeMount的简单使用示例࿱…...
JVM垃圾回收相关算法
目录 一、前言 二、标记阶段:引用计数算法 三、标记阶段:可达性分析算法 (一)基本思路 (二)GC Roots对象 四、对象的finalization机制 五、MAT与JProfiler的GC Roots溯源 六、清除阶段:…...
crontab 无法激活、启动 pyenv failed to activate virtualenv
root crontab 无法激活、启动 pyenv crontab代码 30 1 * * * sh /data/work/roop/sh/startSwapFaceDev.sh > /dev/null 2>&1 sh核心代码 echo "${YELLOW}pyenv activate ${venv} ${NOCOLOR}" eval "$(pyenv init -)" eval "$(pyenv v…...
系列八、key是弱引用,gc垃圾回收时会影响ThreadLocal正常工作吗
一、key是弱引用,gc垃圾回收时会影响ThreadLocal正常工作吗 到这里,有些小伙伴可能有疑问,ThreadLocalMap的key既然是 弱引用,那么GC时会不会贸然地把key回收掉,进而影响ThreadLocal的正常使用呢?答案是不会…...
pytorch中.to(device) 和.cuda()的区别
在PyTorch中,使用GPU加速可以显著提高模型的训练速度。在将数据传递给GPU之前,需要将其转换为GPU可用的格式。 函数原型如下: def cuda(self: T, device: Optional[Union[int, device]] None) -> T:return self._apply(lambda t: t.cuda…...
Mysql 递归查询子类Id的所有父类Id
文章目录 问题描述先看结果表结构展示实现递归查询集合查询结果修复数据 问题描述 最近开发过程中遇到一个问题,每次添加代理关系都要去递归查询一下它在不在这个代理关系树上.很麻烦也很浪费资源.想着把代理关系的父类全部存起来 先看结果 表结构展示 表名(t_agent_user_rela…...
设计模式 之单例模式
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点,使得该实例可以在程序的任何地方被访问。单例模式经常用于管理共享资源或限制对象创建数量的情况下。 实现一个单例模式需要注意以下几个关键点: 构造…...
ros2不同机器通讯时IP设置
看到这就是不同机器的IP地址,为了避免在路由器为不同的机器使用DHCP分配到上面的地址,可以设置DHCP分配的范围:(我的路由器是如下设置的,一般路由器型号都不一样,自己找一下) 防火墙设置-----&…...
Nginx模块开发之http过滤器filter
文章目录 什么是过滤模块Nginx相关数据结构介绍ngx_module_t的数据结构ngx_http_module_t数据结构ngx_command_s数据结构 相关宏定义filter(过滤器)实现Nginx模块开发流程Nginx 模块执行具体实现流程create_loc_confmerge_loc_confpostconfiguration修改…...
26 - 原型模式与享元模式:提升系统性能的利器
原型模式和享元模式,前者是在创建多个实例时,对创建过程的性能进行调优;后者是用减少创建实例的方式,来调优系统性能。这么看,你会不会觉得两个模式有点相互矛盾呢? 其实不然,它们的使用是分场…...
【Web安全】sqlmap的使用笔记及示例
【Web安全】sqlmap的使用笔记 文章目录 【Web安全】sqlmap的使用笔记1. 目标2. 脱库2.1. 脱库(补充) 3. 其他3.1. 其他(补充) 4. 绕过脚本tamper讲解 1. 目标 操作作用必要示例-u指定URL,检测注入点sqlmap -u http://…...
机器学习第12天:聚类
文章目录 机器学习专栏 无监督学习介绍 聚类 K-Means 使用方法 实例演示 代码解析 绘制决策边界 本章总结 机器学习专栏 机器学习_Nowl的博客-CSDN博客 无监督学习介绍 某位著名计算机科学家有句话:“如果智能是蛋糕,无监督学习将是蛋糕本体&a…...
若依框架导出下载pdf/excel以及导入打印等
一、打印文件 // 报表打印 handlePdf(row) {wayAPI(row.billcode).then((res) > {var binaryData [];binaryData.push(res);let url window.URL.createObjectURL(new Blob(binaryData, {type: "application/pdf"})); window.open("/static/pdf/web/v…...
汇编-PROC定义子过程(函数)
过程定义 过程用PROC和ENDP伪指令来声明, 并且必须为其分配一个名字(有效的标识符) 。目前为止, 我们所有编写的程序都包含了一个main过程, 例如: 当要创建的过程不是程序的启动过程时, 就用RET指令来结束它。RET强制…...
服务器主机安全的重要性及防护策略
在数字化时代,服务器主机安全是任何组织都必须高度重视的问题。无论是大型企业还是小型企业,无论是政府机构还是个人用户,都需要确保其服务器主机的安全,以防止数据泄露、网络攻击和系统瘫痪等严重后果。 一、服务器主机安全的重…...
PDF转成图片
使用开源库Apache PDFBox将PDF转换为图片 依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.4</version> </dependency> <dependency><groupId>org.apache…...
Qt无边框设计
//指定窗口为无边框 this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint);重写鼠标事件: void mousePressEvent(QMouseEvent* event) override; void mouseMoveEvent(QMouseEvent* event) override;定义位置: QPoint dif…...
规则引擎Drools使用,0基础入门规则引擎Drools(二)高级语法
文章目录 系列文章索引五、规则属性1、enabled属性2、dialect属性3、salience属性4、no-loop属性5、activation-group属性6、agenda-group属性7、auto-focus属性8、timer属性9、date-effective属性10、date-expires属性 六、Drools高级语法1、global全局变量2、query查询3、fun…...
C语言二十三弹---求第N项斐波那契数列的值
C语言求第N项斐波那契数列的值 定义:斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89…自然中的斐波那契数列࿰…...
Pickcode:教孩子们编码的新视觉语言
Pickcode 通过视觉课程、聊天机器人、游戏和绘图来教授编程。 Pickcode 是一种新的语言和编辑器,可以直观地指导用户编写代码来制作聊天机器人、动画图画和游戏。Pickcode 旨在让用户在学习更高级的语言之前能够充满信心地开始学习编码。 Pickcode 可视化编程语言…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
C# winform教程(二)----checkbox
一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...
