当前位置: 首页 > news >正文

第十一章 Vue生命周期及生命周期的四个阶段

目录

一、引言

1.1. Vue生命周期的具体阶段

1.2. 每个阶段的具体作用和常用场景

1.3. 生命周期钩子函数

​二、代码示例

三、运行效果 


一、引言

Vue生命周期是指Vue组件实例从创建到销毁的整个过程。在这个过程中,组件经历了一系列的阶段,每个阶段都有其特定的生命周期钩子函数,这些钩子函数允许在不同的阶段插入开发人员自定义的代码逻辑。理解Vue生命周期有助于更好地管理组件的状态和行为,特别是在数据管理和DOM渲染方面。

1.1. Vue生命周期的具体阶段

生命周期四个阶段:① 创建 ② 挂载 ③ 更新 ④ 销毁

1. 创建

beforeCreate:在实例创建之前调用,此时还没有调用data和methods中的方法。

created:实例创建后调用,此时已经完成了数据的观测,但是尚未挂载DOM,$el属性尚不可用。

2. 挂载

beforeMount‌:在挂载之前调用,相关的render函数首次被调用,可以在此时对实例进行渲染。

mounted:实例已经挂载到DOM上后调用,此时期已经和DOM进行了关联,可以用$el访问到挂载的DOM元素。

3. 更新

beforeUpdate‌:数据更新时调用,发生在虚拟DOM打补丁之前。

updated‌:数据更新后调用,虚拟DOM已经打补丁之后。

4. 销毁

beforeDestroy‌:实例销毁之前调用。

destroyed‌:实例已销毁后调用。

1.2. 每个阶段的具体作用和常用场景

  • created‌:常用于发起网络请求,因为此时已经完成了数据的观测,但尚未挂载DOM。
  • mounted‌:常用于操作DOM元素,因为此时实例已经挂载到DOM上。
  • updated‌:常用于执行依赖于DOM的操作,因为此时虚拟DOM已经更新。
  • beforeDestroy‌:常用于进行清理工作,如移除事件监听器等,因为实例即将销毁。

1.3. 生命周期钩子函数

Vue生命周期过程中,会自动运行一些函数,被称为【生命周期钩子】→ 让开发者可以在【特定阶段】运行自己的代码。

二、代码示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"><h3>{{ title }}</h3><div><button @click="count--">-</button><span>{{ count }}</span><button @click="count++">+</button></div></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {count: 100,title: '计数器'},// 1. 创建阶段(准备数据)beforeCreate () {console.log('beforeCreate 响应式数据准备好之前', this.count)},created () {console.log('created 响应式数据准备好之后', this.count)// this.数据名 = 请求回来的数据// 可以开始发送初始化渲染的请求了},// 2. 挂载阶段(渲染模板)beforeMount () {console.log('beforeMount 模版渲染之前', document.querySelector('h3'.innerHTML))},mounted () {console.log('mounted 模板渲染之后', document.querySelector('h3'.innerHTML))// 可以开始操作dom了},// 3. 更新阶段beforeUpdate () {console.log('beforeUpdate 数据改了,视图还没更新', document.querySelector('span').innerHTML)},updated () {console.log('updated 数据改了,视图已经更新', document.querySelector('span').innerHTML)},// 4. 销毁阶段beforeDestroy () {console.log('beforeDestroy销毁前')console.log('清除掉一些Vue以外的资源占用,如定时器、延时器等等')},destroyed () {console.log('destroyed销毁后')}})</script>
</body></html>

三、运行效果 

注:因为销毁阶段涉及到浏览器的关闭,这里为了演示销毁,在浏览器的控制台里通过调用Vue app实例的destroy()方法。

相关文章:

第十一章 Vue生命周期及生命周期的四个阶段

目录 一、引言 1.1. Vue生命周期的具体阶段 1.2. 每个阶段的具体作用和常用场景 1.3. 生命周期钩子函数 ​二、代码示例 三、运行效果 一、引言 Vue生命周期是指Vue组件实例从创建到销毁的整个过程。在这个过程中&#xff0c;组件经历了一系列的阶段&#xff0c;每个阶段…...

展厅展会客流显示屏的客流统计功能如何实现

随着科技的发展&#xff0c;展厅和展会的管理越来越智能化。客流显示屏作为一种高效的管理工具&#xff0c;能够实时显示参观人数&#xff0c;帮助主办方更好地了解客流情况&#xff0c;优化资源配置。本文将详细介绍展厅展会客流显示屏的客流统计功能如何实现&#xff0c;分为…...

golang正则表达式的使用及举例

正则表达式很强大&#xff0c;在一些场合如抓包&#xff0c;爬虫等方面很有用。在 Go语言中&#xff0c;正则表达式通过标准库 regexp 提供支持。使用正则表达式可以进行字符串匹配、替换和分割等操作。 以下是正则表达式的基本使用方法及示例&#xff1a; 1. 导入 regexp 包 …...

Flutter杂学: iOS 上启用自动填充和关联域

下面是详细的配置和代码&#xff0c;以确保在 iOS 上启用自动填充和关联域&#xff08;Associated Domains&#xff09;功能。 配置步骤 1. 在 Apple Developer 控制台中启用 Associated Domains 登录 Apple Developer。导航至您的 App ID 设置页面。找到您要配置的 App ID&…...

接口自动化-框架搭建(Python+request+pytest+allure)

使用代码如何开展接口自动化测试。 一 选择自动化测试用例 业务流程优先&#xff0c;单接口靠后&#xff0c;功能稳定优先&#xff0c;变更频繁不选。 二 搭建自动化测试环境 &#xff08;1&#xff09;安装python编译器3.7版本以上--自行安装 &#xff08;2&#xff09;安…...

[论文阅读]Constrained Decision Transformer for Offline Safe Reinforcement Learning

Constrained Decision Transformer for Offline Safe Reinforcement Learning Proceedings of the 40th International Conference on Machine Learning (ICML), July 23-29, 2023 https://arxiv.org/abs/2302.07351 泛读只需要了解其核心思想即可。 安全强化学习(Safe Rei…...

工具_Nginx

文章目录 location语法介绍跨域配置https配置http重定向到https配置反向代理配置负载均衡配置upstream配置负载均衡算法&#xff08;1&#xff09;rr轮询&#xff08;默认&#xff09;&#xff08;2&#xff09;wrr加权轮询&#xff08;weight&#xff09;&#xff08;3&#x…...

web开发Model1

WEB开发模式–Model 1 Model1是指基于JSPJavaBean的开发模式&#xff0c;JSP负责web的相关部分&#xff0c;包括数据的展示&#xff0c;请求逻辑的控制等&#xff0c;JavaBean负责业务的逻辑部分&#xff0c;包括数据的存取&#xff0c;业务的实现。 这是我写的一个小项目&…...

ImportError: cannot import name ‘Sequential‘ from ‘keras.models‘

报错信息 ImportError: cannot import name Sequential from keras.models错误代码示例 import tensorflow as tf from keras.models import Sequential # 报错行model Sequential()错误分析 这个错误通常发生在 TensorFlow 和 Keras 的版本不兼容时。TensorFlow 2.x 版本…...

python实战(二)——房屋价格回归建模

一、任务背景 本章将使用一个经典的Kaggle数据集——House Prices - Advanced Regression Techniques进行回归建模的讲解。这是一个房价数据集&#xff0c;与我们熟知的波士顿房价数据集类似&#xff0c;但是特征数量要更多&#xff0c;数据也要更为复杂一些。下面&#xff0c;…...

UHF机械高频头的知识和待学习的疑问

电路图如上所示&#xff1a; 实物开盖清晰图如下&#xff1a; 待学习和弄懂的知识&#xff1a; 这是一个四腔的短路线谐振。分别是输入调谐&#xff0c;放大调谐&#xff0c;变频调谐和本振 第一个原理图输入为75欧&#xff08;应该是面向有同轴线的天线了&#xff09;如下图…...

深入理解 SQL 中的 WITH AS 语法

在日常数据库操作中&#xff0c;SQL 语句的复杂性往往会影响到查询的可读性和维护性。为了解决这个问题&#xff0c;Oracle 提供了 WITH AS 语法&#xff0c;这一功能可以极大地简化复杂查询&#xff0c;提升代码的清晰度。本文将详细介绍 WITH AS 的基本用法、优势以及一些实际…...

同三维T80005JEHA-4K60 4K60超高清HDMI/AV解码器

1路HDMI1路CVBS1路3.5音频输出&#xff0c;HDMI支持4K60&#xff0c;支持1路4K60解码&#xff0c;1路高清转码 产品简介&#xff1a; T80005JEHA-4K60是一款4K60超高清解码器&#xff0c;支持1路HDMI/CVBS解码输出&#xff0c;HDMI支持4K60&#xff0c;适用于各种音视频解决方…...

深信服秋季新品重磅发布:安全GPT4.0数据安全大模型与分布式存储EDS新版本520,助力数字化更简单、更安全

10月23日&#xff0c;深信服举办2024秋季新品发布会。发布会上&#xff0c;深信服正式推出了最新的创新成果&#xff1a;实现动静态数据分类分级和数据风险自动研判分析的安全GPT4.0、具备卓越可靠性和AI勒索防护能力的分布式存储EDS新版本520。通过这些新品和能力&#xff0c;…...

Flutter图片控件(七)

1、加载图片 import package:flutter/material.dart;void main() {runApp(const MaterialApp(home: MyHomePage(),)); }class MyHomePage extends StatelessWidget {const MyHomePage({super.key});overrideWidget build(BuildContext context) {return Scaffold(appBar: AppB…...

JavaEE初阶---文件IO总结

文章目录 1.文件初识2.java针对于文件的操作2.1文件系统的操作---file类2.2文件内容的操作---流对象的分类2.4字符流的操作》文本文件2.4.1异常的说明2.4.2第一种文件内容的读取方式2.4.3第二种读取方式2.4.4close的方法的介绍2.4.5close的使用优化操作2.4.6内容的写入 2.3字节…...

10.28Python_pandas_csv

三、读取CSV文件 CSV&#xff08;Comma-Separated Values&#xff0c;逗号分隔值&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;&#xff1b; CSV 是一…...

数据处理与可视化:pandas 和 matplotlib 初体验(9/10)

数据处理与可视化&#xff1a;pandas 和 matplotlib 初体验&#xff08;9/10&#xff09; 介绍 在如今的数据驱动时代&#xff0c;掌握数据处理与可视化是每个开发者和数据科学家不可或缺的技能。Python 拥有强大的数据处理库 pandas 和数据可视化库 matplotlib&#xff0c;它…...

鸿蒙学习总结

鸿蒙&#xff08;HarmonyOS&#xff09;&#xff0c;做为国产自主研发设计的第一个操作系统&#xff0c;从开放测试以来一直备受关注。其纯血鸿蒙版&#xff08;HarmonyOS NEXT&#xff09;也于进日发布。过去的一段时间里&#xff0c;我站在一个移动开发者的角度对HarmonyOS进…...

如何修改文件创建时间?六个超简单修改方法介绍

怎么修改文件创建时间&#xff1f;在信息安全与隐私保护的领域里&#xff0c;每一个细节都可能成为泄露敏感信息的突破口。文件的创建时间&#xff0c;这个看似微不足道的数据点&#xff0c;实则可能蕴含着重要的时间线索&#xff0c;对于不希望被外界窥探其内容或来源的个人及…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...