18.生命周期

news2024/12/26 23:58:32

目录

1  开启生命周期

2  创建前 beforeCreate()

3  创建后 created()

4  渲染前 beforeMount()

5  渲染后 mounted

6  更新渲染前 beforeUpdate()

7  更新渲染后 updated()

8  移除前 beforeUnmount()

9  移除后 unmounted()


生命周期是指 一个组件从创建->运行->销毁的整个阶段

我们可以在生命周期的某些阶段,执行一些动作,执行动作的时候我们会用到生命周期函数

生命周期函数是vue的内置函数,会随着组件的生命周期,自动按次序执行

后面使用的时候我们看这张图就行了

官方的生命周期函数图如下 应用 & 组件实例 | Vue3中文文档 - vuejs

我们下面按顺序看一下 上面这个图

1  开启生命周期

new vue() 表明创建组件,创建组件后会 初始化组件事件以及组件的生命周期函数

我们现在搞一个TEST.vue

直到TEST使用前,都不会进入TEST生命周期,在TEST使用后,开始进入TEST的生命周期

  • 所有组件(包括App.vue)都有生命周期

2  创建前 beforeCreate()

在初始化完毕后会触发beforeCreate函数,触发beforeCreate时 组件的data/methods尚未被创建,都处于不可用状态

  • vue2中props在beforeCreate()时不可用,但vue3的时候可以使用props
  • beforeCreate()很少被用到

 

我们这里定义一个props,data和method,然后尝试在beforeCreate()中使用它们

我们发现执行了beforeCreate(),而且在beforeCreate()中data,method全都用不了

3  创建后 created()

在beforeCreate()后,组件会初始化data与method,之后触发created()

在created()中,data,props,methods全部可用,但模板的结构尚未生成,所以我们不能在created()中操作DOM

我们通常在created()中发起ajax请求,因为这是最早可以写入数据与使用方法的生命周期函数

4  渲染前 beforeMount()

在created()之后会进行 有无 template 选项的判断,如果有就编译template,如果没有就编译el,这里的判断只是说渲染的东西不一样,无论你要渲染什么,在判断后总会执行 beforeMount()

  • 有无 template 选项的判断这个是关于vue实例的判断,组件中不用考虑
  • beforeMount()很少被用到

当触发beforeMount()时,内存中已经编译好了DOM,但浏览器中还没渲染

我们屏蔽掉之前的一些代码,简单用一下beforeMount()

this.$el 就是组件的全部内容

5  渲染后 mounted

beforeMount()后,会将编译好的东西,替代掉el

触发mounted()时,可以操作DOM

我们简单用一下

6  更新渲染前 beforeUpdate()

创建与销毁的生命函数只会触发一次,更新时的生命函数可以触发无数次

当数据改变时触发beforeUpdate(),我们这里为了直观一点,在span中加上插值表达式

打开后不会触发 beforeUpdate()

我们通过调试工具改变something_data的数值

我们发现可以获取data中的新值是没问题的

如果使用innerHTML,可以获取渲染之前的内容

但如果使用 this.$el与document.querySelector(),那么就会获得渲染之后的内容

7  更新渲染后 updated()

8  移除前 beforeUnmount()

vue2中为 beforeDestroy()

我们可以通过v-if来决定一个组件是否被移除

打开后我们将flag置为false,组件消失

发现此时data,props,methods等等关于组件的一切还是可以使用的

9  移除后 unmounted()

vue2中为destroyed()

App.vue不变

发现除了操作不了DOM,其余的东西还都可以用

  • 在vue2的生命周期图中我们会看到beforeUmount()与unmounted()的过程中会销毁组件的侦听器什么的,在vue3的生命周期图中没有发现这一步

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

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

相关文章

linux安装和使用jekins

Jenkins详细安装配置部署--超详细_jenkins安装部署_宝贝富贵猪的博客-CSDN博客 1.安装JDK 2.获取安装包 下载页面:https://jenkins.io/zh/download/ 或者Index of /jenkins/redhat/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 3.安装Jenkins sud…

深入理解Android布局:ConstraintLayout和RecyclerView的使用

深入理解Android布局:ConstraintLayout和RecyclerView的使用 I. 引言 介绍Android中布局的重要性 提出使用ConstraintLayout和RecyclerView布局的目的和意义 II. ConstraintLayout的使用 介绍ConstraintLayout的基本概念和特点 详细介绍ConstraintLayout的各种属性…

Spring Cloud微服务架构组件【Java培训】

SpringCloud是一系列框架的有序集合,为开发人员构建微服务架构提供了完整的解决方案。Spring Cloud根据分布式服务协调治理的需求成立了许多子项目,每个项目通过特定的组件去实现,下面我们讲解一下Spring Cloud 包含的常用组件以及模块。 (1…

【工业智能】需要了解的知识

【工业智能】需要了解的知识 算法数据预测模型决策协同模型优化控制异常诊断 图像目标检测语义分割关键点检测图像匹配3D抓取度量学习异常检测6D姿态估计 工业自动化、物联网通信IOT工业自动化边缘计算 写在前面: 本文仅为自己记录,不具有指导意义。 算法…

软文推广:真实有效提升软文排名与收录的三大方法!

软文是一种具有良好传播效果的文体,可以通过在搜索引擎中排名靠前的方式,为品牌或企业带来更多曝光。但是,如何让软文在搜索引擎中得到更好的收录和排名呢?在本文中,我们将讨论如何提升软文的收录和排名,以…

【DNS域名解析服务】

目录 一、DNS系统的作用DNS的介绍1.1、通用的顶级域名 二、DNS域名解析(面试题)三、DNS查询方式递归查询迭代查询 四、构建DNS域名服务器步骤4.1、安装bind软件包4.2、修改配置文件4.3、域名的配置修改区域配置文件,添加正向区域配置 4.4、覆…

Canokey Pigeon的初级玩法

Canokey Pigeon的初级玩法 前言开箱使用控制台新版旧版 初步设置FIDO2 PIN更改重置 坑(或者说不满意的地方)玩法FIDO2/U2FOpenPGPPIVNDEFOATH 参考 本文转载于我的博客Canokey Pigeon的初级玩法 Canokey Pigeon今天终于到货了 {% note warning flat %} …

【C++缺省参数、函数重载详解】

目录 一、缺省参数1.1缺省参数的定义1.2缺省参数的分类1.3缺省参数使用时的注意事项 二、函数重载2.1函数重载的概念2.2为什么要有函数重载2.3 C支持函数重载的原理 一、缺省参数 1.1缺省参数的定义 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时&a…

搭建B2B2C多用户国际版商城系统,快速为外贸企业开拓新市场

企业市场竞争激烈,不只体现在国内,甚至全球,电商行业发展迅速,各企业各行业甚至进出口都竞争相当激烈。要想在这种告诉竞争中脱颖而出,开拓新市场,带来新盈利与新契机是必不可少的。易族智汇Javashop助力企…

nmap学习笔记

一、环境准备 Windows10主机Kali虚拟机(使用nmap的地方)metasploitable虚拟机为以上三个操作系统配置静态IP。 Windows主机的IP:192.168.80.3Kali的IP:192.168.80.2metasploitable的IP:192.168.80.4 具体配置方法请参…

STM32-窗口看门狗WWDG实验

窗口看门狗本质上是一个能产生系统复位信号和提前唤醒中断的定时器。它通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新,否则看门狗电路在达到预置的时间周期时…

代码随想录二刷-队列及其应用题目(JS)【重要】

239.滑动窗口最大值 题目 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 进阶: 你能在线性时间复杂度内解决此题吗…

Thinkpad-t470电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件型号驱动情况 主板Thinkpad-t470 处理器Intel Core i7-6600U 2.6GHz / 3.4Ghz Turbo已驱动 内存16GB DDR4 2666Mhz (SK Hynix)已驱动 硬盘Intel SSD Pro 7600P 51…

与Linux的文件权限有关的知识

在Linux系统中,每个文件都有一个所有者和一个用户组。此外,系统还定义了一个“其他人”分类。 文件的所有者通常是创建该文件的用户,而用户组则是在创建该文件时指定的。如果没有指定,则默认为创建用户的主用户组。用户组可以在文…

核心业务1:账户绑定业务

核心业务1:账户绑定业务 1.业务流程图 2.账户绑定数据库设计 3.账户绑定业务流程 4.代码逻辑 5.代码逻辑细节 核心业务1:账户绑定业务 1.业务流程图 ①用户绑定数据到商户平台(已

C++map/set与unordered系列的区别

文章目录 map/set与unordered系列的区别map/set与unordered系列的性能对比测试总结 map/set与unordered系列的区别 1: map/set遍历时是有序的,unordered_map/unordered_set遍历时是无序的. 以set和unordered_set容器为例: 2: map/set是双向迭代器,底层数据结构为红黑树,unor…

重磅 | Shifu物联网开发框架成为CNCF认证项目

近日,边无际Shifu项目被收录进CNCF云原生全景图,成为了云原生计算基金会认证的项目之一。此次收录证明了Shifu具备了符合CNCF标准的技术能力和良好的社区发展,展现了Shifu在云原生计算领域的实力和可信度,巩固了Shifu在云原生领域…

J2EE,Java EE,Jakarta EE 命名之间的恩恩怨怨

介绍 简单来说,上面所有的名字指的都是一个东西 Java Platform, Enterprise Edition 上面的几个名词都是下面的内容的简写: J2EE(Java 2 Platform, Enterprise Edition)Java EE (Java Platform, Enterprise Edition)Jakarta EE(Jakarta Enterprise Edi…

learn_C_deep_1 (C程序补充知识、变量的声明和定义、声明和定义的区别)

目录 C程序补充知识 变量的声明和定义 1.什么是变量? 2.变量的本质是什么? - 所有的变量都要在内存的某个位置开辟空间 3.变量的定义和声明形式、初始化和赋值的区别 4.为什么要定义变量 声明和定义的区别 C程序补充知识 先让我们来看一段C语言…

史上最严宝宝口粮新国标出台,DHA和维生素D可能无需额外补充了

自2023年2月22日起,我国婴幼儿配方食品(以下简称配方奶)新国标开始实施。这意味着2023年2月22日以后在中国上架销售的配方奶必须符合新国标,重新取得国家市场监督管理总局食品评审中心(CFE-SAMR)的注册。这…