【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 可视化编程语言…...
从CoPaw_Test项目看协同自动化测试框架的设计与工程实践
1. 项目概述:从“1NY2/CoPaw_Test”看自动化测试的协同进化最近在梳理团队内部的测试资产时,我反复琢磨一个项目:“1NY2/CoPaw_Test”。乍一看,这个命名有点“黑话”的味道,像是某个内部代号。但拆解开来,它…...
Android 14开发调试遇阻?手把手教你用vdc命令解决adb remount报错
Android 14系统调试实战:深入解析checkpoint机制与vdc命令应用 在Android 14系统开发过程中,许多工程师都遇到过adb remount命令突然失效的困扰。当你正急于修改系统文件进行调试,终端却弹出"Cannot use remount when a checkpoint is i…...
手把手带敲springboot3 vue3校园论坛系统
今天我们分享一个非常经典的实战项目——校园论坛系统,论坛系统比较核心的部分就是发帖,多级评论功能。 技术栈 前后端分离项目 后端:SpringBoot3 MyBatis 前端:Vue3 Element-Plus Vue-Router Axios 数据库: MyS…...
对比不同模型在 Taotoken 上的响应速度与使用体感
不同模型在 Taotoken 上的响应速度与使用体验观察 1. 测试环境与方法 本次测试基于 Taotoken 平台提供的多模型接入能力,选取了平台上常见的三种模型进行对比观察。测试环境为本地开发机通过 HTTP API 直连 Taotoken 服务端,网络延迟稳定在 50ms 以内。…...
从混乱到清晰:我是如何用PlantUML活动图重构团队模糊的业务逻辑文档的
从混乱到清晰:PlantUML活动图如何成为团队沟通的桥梁 1. 当文字失效时:业务逻辑文档的困境 那是一个普通的周三下午,会议室里的空气凝固得几乎能切开。产品经理第7次拍着桌子强调:"这个订单状态机逻辑文档写得清清楚楚&#…...
从协议到代码:深入理解5G NR中SMTC的三种配置(smtc1/smtc2/smtc2-LP)及其在开源仿真中的应用
从协议到代码:深入理解5G NR中SMTC的三种配置及其在开源仿真中的应用 当你在深夜调试5G UE模拟器时,是否曾被SMTC配置的三种模式搞得晕头转向?作为协议栈开发中最容易被忽视却又至关重要的测量时序控制机制,SMTC配置直接决定了终端…...
taotoken 多模型聚合平台为 matlab 用户提供稳定 ai 算力支持
Taotoken 多模型聚合平台为 MATLAB 用户提供稳定 AI 算力支持 1. MATLAB 中的 AI 算力需求场景 在工程仿真优化与科学数据处理领域,MATLAB 用户常面临需要智能文本生成与代码解释的需求。典型场景包括自动生成仿真报告、解析复杂算法实现、辅助调试错误信息等。传…...
从颜色代码到网络抓包:Hex编码的5个意想不到的实用场景
从颜色代码到网络抓包:Hex编码的5个意想不到的实用场景 在数字世界的底层,Hex编码如同一位沉默的翻译官,将冰冷的二进制数据转化为人类可理解的十六进制字符。这种由0-9和A-F组成的简洁表达方式,远不止是计算机科学教材里的抽象概…...
深度解析SQL血缘分析:数据治理的终极自动化方案
深度解析SQL血缘分析:数据治理的终极自动化方案 【免费下载链接】sqllineage SQL Lineage Analysis Tool powered by Python 项目地址: https://gitcode.com/gh_mirrors/sq/sqllineage 在数据驱动的时代,企业面临的最大挑战之一是理解数据在复杂S…...
微信聊天记录永久保存指南:用免费开源工具完整备份你的数字记忆
微信聊天记录永久保存指南:用免费开源工具完整备份你的数字记忆 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因为手机丢失、误删聊天记录而懊恼不…...
