Vue3.0组件的生命周期

每个Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到DOM,以及在数据改变时更新 DOM。在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶段运行自己的代码。

<template><div id="myid"></div>
</template>
<script>
import AChild from "./components/AChild.vue" //导入AChild组件模板
export default {components: {AChild},data() {return {name: "lily"}},beforeCreate() {//这个钩子函数会在实例初始化完成props 解析之后,data() 和 computed 等选项处理之前立即调用。//beforeCreate()创建前,视图view,data模型都未被创建//console.log(this.name)  //此时无法访问data中的数据//this.myClick();         //此时无法访问methods中的方法//用途://1、可以做页面拦截。当进一个路由的时候我们可以判断是否有权限进去,是否安全进去,携带参数是否完整,参数是否安全。使用这个钩子好函数的时候就避免了让页面去判断,省掉了创建一个组建Vue实例。//2、可以做自定义重定向。当路由还没有进去时我们判断是否正确进去,若不正确进去可以重定向到指定的页面。//3、依赖注入:在beforeCreate钩子函数中,你可以访问到组件的依赖注入,例如通过this.$options.inject 来获取注入的属性或方法。这可以用于实现组件之间的通信或共享数据。},created() {//当这个钩子被调用时,以下内容已经设置完成:响应式数据、计算属性、方法和侦听器。然而,此时挂载阶段还未开始,因此不能在这里操作Dom模板:document.getElementById("myid")//beforeCreate()创建前,视图view,data模型都未被创建console.log(this.name) //此时已经可以访问data中的数据了this.myClick();        //此时已经可以访问methods中的方法了//一般用在对data中的数据做初始化处理:比如发起ajax请求数据赋值给data中的变量},beforeMount() {//组件挂载到节点之前执行的函数,此时无法用document.getElementById,因为此时组件还未挂载到节点//注释:假如一个页面相当于一棵树,组件就是它的枝叶,当前的状态就是我们制作好了枝叶,但是还没有将这个枝叶挂到这颗树上,因此不能在这里操作Dom模板:document.getElementById("myid")//beforeMount() 挂载前,视图view未被真正进行创建,只是进行占位;data模型被创建//在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取},mounted() {//比较常用的钩子//组件挂载完成后执行的函数(页面开始渲染后执行,mounted只会执行一次,可用来实现页面初始化)//注释:我们制作好了枝叶,而且已经将枝叶挂到这颗树上,所以此时可以在这里操作Dom模板//mounted() 挂载后,视图view被真正创建并进行数据绑定;data模型被创建//this.$nextTick监听函数的作用是:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。(通俗理解为:某个状态改变立即更新)this.name="张三";this.$nextTick(()=>{ //这个this.$nextTick其实是在updated钩子函数之后才会被执行。//应用场景是:假设我有一个name只要这个name改变,比如说改变为张三,那么此时我们就需要new一个名字为张三的人。当name改变为李四了,那么就需要创建一个名字为李四的人//那有人就说了为什么这个动作不放到updated钩子函数中去做呢?我们之所以这么做是考虑的性能问题,因为这个组件其他的任何一个状态改变都会走updated钩子函数,比如age发生改变,email发生改变。等等都会走updated钩子函数//而此时我们的需求是name改变才会new一个人。所以new一个人的动作就放到mounted钩子函数中来处理,不用到放到updated钩子函数中去执行,即便做了更新操作, 生命周期会走到updated钩子函数中,但是钩子函数中没用这个new一个人的动作,所以也不会被执行到,只有这里才会被执行到,提升了性能})window.onresize=()=>{ //案例:这里我们做了一个调整窗口大小监听事件(注意:这个事件是一个window事件,它不是在我们页面的Dom中进行绑定的,即便组件卸载了挂载到window的事件还在所以组件卸载前,或者组件卸载后需要手动进行解绑,否则一直在这里执行,会导致内存泄漏的危险)console.log(window.innerWidth, window.innerHeight)}},beforeUpdate() {//组件更新之前执行的函数(Dom更新前执行)//注释:假如一个页面相当于一棵树,组件就是它的枝叶,当前的状态就是以前的树叶掉了,我们重新制作好了新的枝叶,但是还没有将这个新的枝叶挂载到这颗树上,所以此时不能在这里操作Dom模板//beforeUpdate()更新前,data模型被更新,view视图未被更新;更新前的准备。只有view上面的数据变化才会触发beforeUpdate和updated,仅属于data中的数据改变是并不能触发。},updated() {//组件更新完毕后执行的函数(Dom更新后执行)//注释:我们制作好了新的枝叶,而且已经将新的枝叶挂到这颗树上,所以此时可以在这里操作Dom模板//updated()更新后,view和data都被更新,更新完成},beforeUnmount() {//组件卸载之前执行的函数//一般可以在此处移除一些时间,window,或者其他的事件监听window.onresize=null  //移除window监听事件},unmounted() {//组件卸载完成后执行的函数},methods: {myClick() {console.log(123);}}}</script>

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

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

相关文章

Istio 实战

文章目录 Istio流量管理分享会【1】什么是istio?【2】istio 可以干什么?【3】业务中的痛点?【4】istio 高级流量管理5.1 istio 组件介绍与原理5.2 sidercar何时注入?如何控制是否注入?5.3 查看sidecar 容器插入的容器中的iptablesDestination RuleVirtual ServiceGateways…

使用es实现轻量级分布式锁

文章目录 [toc] 1.前言2.实现3.总结 1.前言 一般来说&#xff0c;实现分布式锁的方式有哪几种&#xff1f; 一&#xff1a;Redisson实现 二&#xff1a;ZK实现 这两种实现网上的实现是千篇一律&#xff0c;在本文就不做过多的讲解了 其它方式好像没有了&#xff0c;真的是这…

Camtasia Mac 2023版怎么给视频加字幕

在视频制作过程中&#xff0c;字幕和马赛克是两项非常常用的编辑功能&#xff0c;添加字幕可以提高观众的观看体验&#xff0c;添加马赛克可以保护视频创作者不想公开的画面内容。Camtasia作为一款知名的视频制作软件&#xff0c;在具备基本的录制和视频编辑功能的同时&#xf…

Windows11搭建kafka-python环境

文章目录 安装软件javazookeeperkafka命令行调试环境python-kafka环境参数解释名词解释定义基础架构同步发送、异步发送消息队列的两种模式消费者与消费组幂等性文件清理策略kafka消费模式offset作用kafka消费顺序如何保证参考文献安装软件 java 下载jdk,配置环境变量JAVA_H…

win10安装spark

一、进入spark下载页面 连接 Downloads | Apache Spark 二、解压下载后的.tgz文件 直接解压即可 三、运行 运行bin目录下的 spark-shell.cmd 提示 Did not find winutils.exe: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.hom…

二蛋赠书六期:《Linux管理入门经典(第8版)》

前言 大家好&#xff01;我是二蛋&#xff0c;一个热爱技术、乐于分享的工程师。在过去的几年里&#xff0c;我一直通过各种渠道与大家分享技术知识和经验。我深知&#xff0c;每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此&#xff0c;我非常感激大家一直…

2023-09-09 青少年软件编程(C语言)等级考试试卷(五级)解析

2023-09-09 青少年软件编程(C语言)等级考试试卷(五级)解析T1、红与黑 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 时间限制:1000 内存限制…

[量化投资-学习笔记002]Python+TDengine从零开始搭建量化分析平台-MA均线的多种实现方式

MA 均线时最基本的技术指标&#xff0c;也是最简单&#xff0c;最不常用的&#xff08;通常使用EMA、SMA&#xff09;。 以下用两种不同的计算方法和两种不同的画图方法进行展示和说明。 MA 均线指标公式 MA (N)(C1 C2 C3 …C N )/N目录 方式一1.SQL 直接查询均值2.使用 pyp…

RHCE---shell脚本编程sed

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 Liunx中筛选文本时常用的命令&#xff0c;常常会被提及文本三剑客&#xff0c;前文我们学习了文本三剑客中的grep 命令&#xff0c;除了grep命令我们也常用到sed命令&#xff0c;sed命令有…

window系统修改rabbitmq 默认端口

安装完rabbitmq之后&#xff0c;默认的client端口是5672, 控制台访问端口是15672&#xff0c;rabbitmq管理工具启动之后在浏览器中输入地址&#xff1a; ​ ​http://localhost:15672/​​​ 就可以访问后台​ ​​​&#xff0c; 默认管理员账号&#xff1a;guest 密码&#x…

【0基础学Java第四课】-- 逻辑控制

4. 逻辑控制 4.1 顺序结构4.2 分支结构4.2.1 if语句判断一个数字是奇数还是偶数判断一个数字是正数&#xff0c;负数&#xff0c;还是零判断一个年份是否为闰年 4.2.2 switch 语句 4.3 while循环打印 1 - 10 的数字计算 1 - 100 的和计算 5 的阶乘计算1&#xff01;2&#xff0…

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目)

文章目录 0 代码仓库1 启动Centos oracle数据库2 Winsows安装配置OCCI库2.1 下载文件2.2 VS 配置2.2.1 VC包含目录2.2.2 VC库目录2.2.3 连接器-附加依赖项2.2.4 代码测试-Oracle11g2.2.4.1 准备2.2.4.2 代码测试 3 Centos安装配置occi库3.0 强调3.1 下载instantclient库文件压缩…

HTML5教程

HTML5读书笔记 jack 2023.10.24 来源&#xff1a;HTML5 Canvas | 菜鸟教程 常识&#xff1a; HTML5 是下一代 HTML 标准。 HTML , HTML 4.01的上一个版本诞生于 1999 年 <!DOCTYPE html>用于声明下面代码是H5; 浏览器支持 你可以让一些较早的浏览器&#xff08;不支…

ubuntu 安装串口工具和添加虚拟串口

目录 一、串口工具安装 二、使用Windows本身虚拟的串口 &#xff08;一&#xff09;添加串口 1、保证虚拟机是关闭状态&#xff0c;打开“虚拟机设置”&#xff0c;点击“添加”。 2、选中“串行端口”&#xff0c;点击“完成”。 3、选中刚添加的串口&#xff0c;下拉选…

python快速入门

语法结构 基本输出 使用print函数来完成基本输出 print("I am xl")注释 单行注释使用# 多行注释 多行注释""" 多行注释 """缩进 python和其他语言最大的区别就是用缩进来区分子代码区域而不是大括号 续行 使用\符号来完成续行…

宠物用品小程序

近年来&#xff0c;越来越多的人选择将宠物视为家庭的一员&#xff0c;为宠物购买各种用品成为了一项重要的消费活动。因此&#xff0c;宠物用品小程序应运而生&#xff0c;为消费者提供了一个便捷的购买平台&#xff0c;同时也为宠物带来了更加幸福的生活。 登录乔拓云平台进入…

京东平台数据分析(京东销量):2023年9月京东吸尘器行业品牌销售排行榜

鲸参谋监测的京东平台9月份吸尘器市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年9月&#xff0c;京东吸尘器的销量为19万&#xff0c;环比下滑约12%&#xff0c;同比下滑约25%&#xff1b;销售额为1.2亿&#xff0c;环比下滑约11%&…

前端实现埋点监控

前端实现埋点&监控 实现埋点功能的意义主要体现在以下几个方面&#xff1a; 数据采集&#xff1a;埋点是数据采集领域&#xff08;尤其是用户行为数据采集领域&#xff09;的术语&#xff0c;它针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。通过埋…

本地生活商家用批量剪辑有用吗?

可以用&#xff0c;现在很多本地生活商家&#xff0c;都会通过借助批量剪辑工具来提升视频的曝光量&#xff0c;从而带动店铺的客流量。 推荐本地生活商家使用超级编导批量剪辑工具&#xff0c;这是一款0基础小白也可以很快上手的批量剪辑工具&#xff0c;剪辑页面布局以及功能…

基于单片机的温湿度和二氧化碳检测系统设计

目录 摘 要... 2 第一章 绪论... 5 1.1 研究课题背景... 5 1.2 国内外发展概况... 7 1.3 课题研究的目的... 8 1.4 课题的研究内容及章节安排... 9 第二章 二氧化碳和温湿度检测系统控制系统的设计方案... 11 2.1 设计任务及要求... 11 2.2 二氧化碳和…