【社区图书馆】vue的生命周期

news2024/11/15 12:41:53

目录

vue的生命周期

生命周期流程

Init Events & Lifecycle

beforeCreate

Init injections & reactivity

created

beforeMount

Create vm $el and replace ‘el’ with it

mounted

beforeUpdate

Virtual Dom re-render and patch

updated

beforeDestroy

vm.$destroy()

总结

常用的生命周期钩子

关于销毁vue的说明


vue的生命周期

生命周期又被叫做回调函数、寿命周期钩子、生命周期函数,那么他是什么呢?其实就是vue在每个关键的时间节点,准确的调用了一些特殊的函数,并且这些函数名是不可以修改的,函数的具体业务逻辑我们可以随意定义。比较重要的一点就是:生命周期函数中的this他是指向vm的,或者说是我们的组件实例对象的。

生命周期流程

在官网中我们可以看到vue的生命周期图:

Init Events & Lifecycle

初始化:生命周期、事件、但数据代理还未开始

beforeCreate

这个时候是无法通过vm访问到data中的数据的,methods中的方法也无法调用

Init injections & reactivity

初始化:数据检测、数据代理

created

这个时候,我们时刻一个通过vm访问得到data中的数据的、methods中配置的方法也是可以调用的。

created之后,beforeMount之前这段:vue开始解析模板,生成虚拟Dom(内存中),此时页面还不能真正显示解析好的数据内容。

beforeMount

这个时候,页面中展示的是没有经过Vue编译的Dom结构,所有对Dom的操作,最终都不是奏效的。也就是说,不要在这里去操作dom因为不会有任何效果。

Create vm $el and replace ‘el’ with it

将内存中的虚拟dom转化为真是的dom挂载到页面中

mounted

这个时候,页面中展示的是没有经过vue编译的dom,对dom的操作时有效的(尽量避免这么操作)。到这个时候,初始化的过程已经结束。平时开发中用到的开启定时器、发送网络请求、订阅消息、绑定自定义事件等等初始化的操作都在这时候进行操作

到这里,我们整个挂在的操作就全部完成了!!!!

beforeUpdate

这个时候数据已经更新的,但是页面依旧是旧的,也就是说,页面还没有和数据保持同步!

Virtual Dom re-render and patch

根据新数据,生成新的虚拟dom,然后让他与旧的虚拟dom去进行比较,最后完成页面的更新,也就是完成了Model到view的更新操作。

updated

这个时候数据是最新的了,页面也是最新的了。也就是说页面和数据保持了同步。

beforeDestroy

这个时候,vm中所有的data、methods、指令等等,他都是处在一个可用的状态,即将要执行销毁的过程,一般就是在这个阶段,关闭定时器、取消订阅消息、解绑自定义事件等等的一些收尾工作都是出在这个过程来处理的

这个时候所触发的更新都不会有效了!!!说的简单点就是:人在驾鹤西归之前不会再有任何动作了!

vm.$destroy()

完全销毁一个实例。清理它与其它实例的连接,解绑它的全部指令及自定义事件监听器。

触发 beforeDestroy 和 destroyed 的钩子

总结

常用的生命周期钩子

1)、mounted:当我们发送ajax请求、启用定时器、绑定我们自定义时间、订阅消息的初始化操作的时候使用

2)、beforeDestroy:清除定时器、解绑自定义事件、取消订阅消息等收尾工作的时候使用

关于销毁vue的说明

1)、当我们销毁操作后,vue开发者工具内任何内容都是看不到的了

2)、我们调用销毁后,自定义事件全部消失,但是我们饿原生的dom事件他是不会消失的

3)、通常我们不会在beforeDestroy操作任何数据,因为就算是你操作数据,也是没有任何意义,因为他不会触发更新流程。

好了,关于vue的生命周期就到这里。

欢迎大家点击下方卡片,关注《coder练习生》

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

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

相关文章

python+vue 大学生社团管理系统

本系统分为学生,管理员,社团负责人三个角色,学生可以注册登陆系统,查看社团,申请入团,查看参加社团活动,查看社团新闻,社团负责人对社团信息,入团审核,社团新…

Opencv+Python笔记(五)图像阈值化处理

图像阈值化可以理解为一个简单的图像分割操作,阈值又称为临界值,它的目的是确定出一个范围,然后这个范围内的像素点使用同一种方法处理,而阈值之外的部分则使用另一种处理方法或保持原样。 阈值处理有2种方式,一种是固…

ijkplayer解码流程源码解读

ijkplayer是一款基于ffmpeg的在移动端比较流行的开源播放器。FFmpeg是一款用于多媒体处理、音视频编解码的自由软件工程,采用LGPL或GPL许可证。 要想理解ijkplayer源码,首先得知道视频播放器的基本原理。 视频播放器播放一个互联网上的视频文件&#xf…

win10怎么录屏幕视频带声音?有哪些需要注意的地方?

随着科技的不断发展,屏幕录制已成为常见的工具之一。在Win10系统中,录制屏幕视频带声音也变得越来越简单。本文将指导您如何在Win10上实现录制屏幕视频带声音,并介绍一些需要注意的地方。 需要用到的工具和步骤 在Win10系统中,自…

【u盘提示:驱动器未格式化】如何解决?

u盘虽然使用很方便,可随时拷贝资料到任何有电脑的地方,但它的问题也是比较多的,其中u盘提示驱动器未格式化故障最让人心虚,因为已经无法打开u盘了,里面的资料怎么办,很重要的怎么办,所以今天就教…

OAuth2.0 实战总结

title: OAuth2.0 实战总结 date: 2023-01-30 11:23:12 tags: OAuth2.0 categories:开发技术及框架 cover: https://cover.png feature: false 1. 引言 1.1 OAuth 2.0 是什么? 用一句话总结来说,OAuth 2.0 就是一种授权协议。那如何理解这里的“授权”…

前端调试技巧

前端工作中,不仅编码很重要,重现bug,解决bug的能力同样重要。而这些都离不开代码调试。本文就一些调试技巧做出总结,不足之处,欢迎大家多多补充。 PC调试 console.log() 在你觉得有问题的代码处,加上一句 …

基于HFSS软件24GHz雷达天线设计

前言:近年来,我国的汽车保有量不断增加,汽车交通事故引发的财产损失和人 员伤亡也在不断增加。为了有效减少交通事故发生,车载雷达得到了各大汽车厂商和各个研究机构的普遍重视。现在国际上主要国家都把 24GHz 和 77GHz 两个频段分…

解决谷歌翻译不能使用的问题

今天登录国外网站,发现谷歌翻译已无法正常使用,网上最多的方法就是更改host文件,在host内增加ip地址,但是经常失效,经常手动更改增加ip着实烦恼,还有可能有别的错误。 最终解决方式是:登录GitH…

新版本ProPhet时间序列预测1:模型解释和安装和初步使用

ProPhet时间序列预测1安装和初步使用 安装pip安装conda安装 Prophet模型使用读取数据将数据处理为ds和y两列看下数据的分布模型训练预测可视化预测结果可视化趋势、假期、每周、季节性、年度季节性的回归图1.0之前模型保存 安装 安装1.0版本之后: 区别: 1.0版本叫prophet <…

设计模式-行为型模式之策略模式

5. 策略模式 5.1. 模式动机 完成一项任务&#xff0c;往往可以有多种不同的方式&#xff0c;每一种方式称为一个策略&#xff0c;我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。 在软件开发中也常常遇到类似的情况&#xff0c;实现某一个功能有多个途径&#x…

【原理图专题】如何把PCB元件位号重排并反标到原理图

在画原理图时我们有时会复制以前项目或其他项目已经现成的模块进行电路的搭建。但可能会遇到一个问题,就是复制过来后位号也跟着过来了。比如说一个板子可能只有100个元件,但是会出现位号上千的元件。这对于后面我们焊接、维修等都很不利。 那可能有人会问,我直接在画完原理…

Redis持久化机制导致服务自启动后恢复数据过长无法使用以及如何关闭

场景 若依前后端分离版手把手教你本地搭建环境并运行项目&#xff1a; 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客 在上面搭建前后端分离的项目后&#xff0c;如果需要在windows服务上进行部署。 若依前后端分离版本&#xff0c;Windo…

58 openEuler搭建Mariadb数据库服务器-管理数据库

文章目录 58 openEuler搭建Mariadb数据库服务器-管理数据库58.1 创建数据库58.2 查看数据库58.3 选择数据库58.4 删除数据库58.5 备份数据库58.6 恢复数据库 58 openEuler搭建Mariadb数据库服务器-管理数据库 58.1 创建数据库 可以使用CREATE DATABASE语句来创建数据库。 CR…

Jetson Nano (4GB)烧写jetbot Image

一、Image下载 1、官方下载&#xff0c;浏览器访问Using SD Card Image - JetBot&#xff0c;下载jetbot-043_nano-4gb-jp45.zip。 注意&#xff1a;通过此方式下载需要电脑能访问外网。 2、天翼网盘下载&#xff0c;https://cloud.189.cn/t/q2mUJv7jaIna &#xff08;访问码…

【三十天精通Vue 3】 第十五天 Vue 3的异步组件和代码拆分

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: 三十天精通 Vue 3 文章目录 引言一、Vue 3 中的异步组件1.1 异步组件的概念1.2 Vue 3 中的异步…

Python机器学习、深度学习技术提升气象、海洋、水文领域应用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;能够在不同操作系统和平台使用&#xff0c;简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库&#xff0c;还有丰富的第三方库&#xff0c;Python在数据处理、科学计算、数学建模、数据挖…

设计模式--原型模式

目录 基本介绍 传统方式克隆 原型模式改进 浅拷贝和深拷贝 浅拷贝的介绍 深拷贝的介绍 原型模式的注意事项和细节 基本介绍 (1) 原型模式(prototype模式): 用原型实例指定创建对象的种类 并且通过拷贝这些原型 创建新的对象 (2) 原型模式是一种创建型设计模式 允许一个…

妙用Java 8中的 Function接口,消灭if...else

在开发过程中经常会使用if...else...进行判断抛出异常、分支处理等操作。这些if...else...充斥在代码中严重影响了代码代码的美观&#xff0c;这时我们可以利用Java 8的Function接口来消灭if...else...。 if (...){throw new RuntimeException("出现异常了")&#x…

全网详细解决1093 - You can‘t specify target table ‘xxx‘ for update in FROM clause的错误

文章目录 1. 复现错误2. 分析错误3. 解决错误 1. 复现错误 今天在工作时&#xff0c;接到一个新需求&#xff0c;就是将app_page_button表中的label_code字段修改为edit&#xff0c;条件如下&#xff1a; 只更新值为null的label_code 且以/edit/${id}结尾的option_value 首先…