Vue 的各个生命周期
详解 Vue 的各个生命周期
文章目录
- 详解 Vue 的各个生命周期
- Vue 组件的生命周期
- 1.1 创建阶段
- 示例:
- 1.2 挂载阶段
- 示例:
- 1.3 更新阶段
- 示例:
- 1.4 销毁阶段
- 示例:
- 生命周期总结
- 生命周期钩子对比表
- 参考链接
Vue 组件的生命周期
在 Vue 中,组件的生命周期可以被划分为创建、运行和销毁三个阶段。以下是每个阶段的重要生命周期钩子。
1.1 创建阶段
在这个阶段,组件开始创建。包括了以下几个生命周期钩子:
beforeCreate:在实例初始化之后、数据观测 (data observation) 和事件/侦听器配置之前被调用。created:在实例被创建后调用。此时实例已被完全设置,包括数据观测和属性初始化。
示例:
new Vue({data() {return {message: 'Hello, Vue!'}},beforeCreate() {console.log('beforeCreate: 实例刚被创建,数据未初始化');},created() {console.log('created: 实例已创建,数据准备就绪:', this.message);}
});
1.2 挂载阶段
在这个阶段,组件被挂载到 DOM 上。包括以下生命周期钩子:
beforeMount:在挂载开始之前被调用,相关的 render 函数首次被调用。mounted:在挂载完成后被调用,此时组件的 DOM 结构已被渲染并且可以访问。
示例:
new Vue({el: '#app',data() {return {message: 'Hello, Vue!'}},beforeMount() {console.log('beforeMount: 组件即将挂载,还未渲染到 DOM');},mounted() {console.log('mounted: 组件已挂载,当前 DOM:', this.$el);}
});
1.3 更新阶段
这个阶段是组件数据发生变化后,组件的重新渲染。相关生命周期钩子有:
beforeUpdate:在数据发生变化,DOM 更新之前被调用。updated:在 DOM 更新完成后被调用。
示例:
new Vue({el: '#app',data() {return {count: 0}},methods: {increment() {this.count++;}},beforeUpdate() {console.log('beforeUpdate: 数据即将更新,当前 count:', this.count);},updated() {console.log('updated: DOM 更新完成,新的 count:', this.count);}
});
1.4 销毁阶段
这个阶段是组件被销毁的时刻,相关生命周期钩子有:
beforeDestroy:在实例销毁之前调用,此时仍可以访问实例。destroyed:在实例被销毁后调用,所有的事件监听器将被移除。
示例:
new Vue({el: '#app',data() {return {isVisible: true}},beforeDestroy() {console.log('beforeDestroy: 组件即将被销毁');},destroyed() {console.log('destroyed: 组件已被销毁');},template: `<div><button @click="isVisible = false">销毁组件</button><p v-if="isVisible">Hello, Vue!</p></div>`
});
生命周期总结
Vue 的生命周期钩子允许开发者在组件的不同生命阶段插入自定义逻辑。通过合理使用这些钩子,开发者可以:
- 在组件被创建时进行初始化和设置。
- 在挂载后进行 DOM 操作。
- 在组件更新前后执行特定逻辑。
- 在组件生命周期末尾清理资源和事件监听。
理解组件的生命周期,对于编写高效、可靠的 Vue 应用至关重要。通过结合生命周期钩子,我们能够确保各个阶段之间的逻辑衔接与数据的一致性。
生命周期钩子对比表
| 生命周期钩子 | 触发时机 | 说明 |
|---|---|---|
beforeCreate | 实例初始化后 | 数据未初始化,事件和侦听器未配置 |
created | 实例创建后 | 数据已就绪,可以访问属性和方法 |
beforeMount | 挂载开始之前 | render 函数首次调用前,DOM 还未生成 |
mounted | 挂载完成后 | DOM 对象已生成,可以进行 DOM 操作 |
beforeUpdate | 数据更新前 | 可以读取现有状态,但下一轮 DOM 更新未开始 |
updated | DOM 更新后 | 可以执行依赖于更新 DOM 结果的操作 |
beforeDestroy | 实例销毁前 | 可以清理事件和其他外部资源 |
destroyed | 实例销毁后 | 所有事件监听器被移除,完成收尾工作 |
参考链接
- Vue.js 官方文档
- Vue.js 生命周期
相关文章:
Vue 的各个生命周期
详解 Vue 的各个生命周期 文章目录 详解 Vue 的各个生命周期Vue 组件的生命周期1.1 创建阶段示例: 1.2 挂载阶段示例: 1.3 更新阶段示例: 1.4 销毁阶段示例: 生命周期总结生命周期钩子对比表参考链接 Vue 组件的生命周期 在 Vue …...
实现简易计算器 网格布局 QT环境 纯代码C++实现
问题:通过代码完成一个10以内加减法计算器。不需要自适应,界面固定360*350。 ""按钮90*140,其它按钮90*70。 参考样式 #define DEFULT_BUTTON_STYLE "\ QPushButton{\color:#000000;\border:1px solid #AAAAAA;\border-radi…...
后端开发详细学习框架与路线
🚀 作者 :“码上有前” 🚀 文章简介 :后端开发 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 为帮助你合理安排时间,以下是结合上述学习内容的阶段划分与时间分配建议。时间安排灵活&a…...
2.langchain中的prompt模板 (FewShotPromptTemplate)
本教程将介绍如何使用 LangChain 库中的 PromptTemplate 和 FewShotPromptTemplate 来构建和运行提示(prompt),并通过示例数据展示其应用。 安装依赖 首先,确保你已经安装了 langchain 和相关依赖: pip install lan…...
FairGuard游戏加固实机演示
此前,FairGuard对市面上部分游戏遭遇破解的案例进行了详细分析,破解者会采用静态分析与动态调试相结合的手段,逆向分析出代码逻辑并对其进行篡改,实现作弊功能,甚至是对游戏资源文件进行篡改,从而制售外挂。…...
Spark使用过程中的 15 个常见问题、详细解决方案
目录 问题 1:Spark 作业超时问题描述解决方案Python 实现 问题 2:内存溢出问题描述解决方案Python 实现 问题 3:Shuffle 性能问题问题描述解决方案Python 实现 问题 4:Spark 作业调度不均问题描述解决方案Python 实现 问题 5&…...
算法【最长递增子序列问题与扩展】
本文讲解最长递增子序列以及最长不下降子序列的最优解,以及一些扩展题目。本文中讲述的是最优解,时间复杂度是O(n*logn),空间复杂度O(n),好实现、理解难度不大。这个问题也可以用线段树来求解,时间和空间复杂度和本节讲…...
k8s篇之flannel网络模型详解
在 Kubernetes (K8s) 中,Flannel 是一种常用的网络插件,用于实现容器之间的网络通信。Flannel 提供了一种覆盖网络(Overlay Network)模型,使得容器可以跨多个主机进行通信。 以下是 Flannel 在 Kubernetes 中的详细工作原理和覆盖网络模型的详解: 1.Flannel 简介 Flann…...
windows 和 linux检查操作系统基本信息
windows检查操作系统基本信息 systeminfolinux检查操作系统基本信息 获取系统位数 getconf LONG_BIT查询操作系统release信息 lsb_release -a查询系统信息 cat /etc/issue查询系统名称 uname -a...
Oracle OCP认证考试考点详解082系列22
题记: 本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 105. 第105题: 题目 解析及答案: 题目翻译: 关于Oracle数据库中的事务请选择两个正确的陈述…...
线性回归 - 最小二乘法
线性回归 一 简单的线性回归应用 webrtc中的音视频同步。Sender Report数据包 NTP Timestamp(网络时间协议时间戳):这是一个64位的时间戳,记录着发送SR的NTP时间戳,用于同步不同源之间的时间。RTP Timestamp࿱…...
Linux - 线程基础
文章目录 1.什么是线程2.线程vs进程3.线程调度4.线程控制4.1 POSIX线程库4.2创建线程4.3线程终止4.4线程等待4.5线程分离 5、线程封装 1.什么是线程 在Linux操作系统中,线程是进程内部的一个执行流。在Linux操作系统下,执行流统称为轻量级进程࿰…...
网络爬虫——分布式爬虫架构
分布式爬虫在现代大数据采集中是不可或缺的一部分。随着互联网信息量的爆炸性增长,单机爬虫在性能、效率和稳定性上都面临巨大的挑战。分布式爬虫通过任务分发、多节点协作以及结果整合,成为解决大规模数据抓取任务的核心手段。 本节将从 Scrapy 框架的…...
RT_Thread内核源码分析(三)——线程
目录 1. 线程结构 2. 线程创建 2.1 静态线程创建 2.2 动态线程创建 2.3 源码分析 2.4 线程内存结构 3. 线程状态 3.1 线程状态分类 3.2 就绪状态和运行态 3.3 阻塞/挂起状态 3.3.1 阻塞工况 3.4 关闭状态 3.4.1 线程关闭接口 3.4.2 静态线程关闭 3.4.3 动态线程关…...
正排索引和倒排索引
一、简介 正排索引:一个未经处理的数据库中,一般是以文档ID作为索引,以文档内容作为记录。 倒排索引:Inverted index,指的是将单词或记录作为索引,将文档ID作为记录,这样便可以方便地通过单词或…...
丹摩 | 重返丹摩(上)
目录 一.登录平台 二. 数据管理与预处理 1.数据清洗 2.数据格式转换 3.特征工程 二.数据可视化 1.快速可视化 2.数据洞察 3.自定义视图 三.技术支持与帮助 1.技术支持 (1). 帮助文档 (2). 用户社区 2.客服支持 (1). 在线客服 (2). 反馈与建议 总结 一.登录平台…...
Frontend - 防止多次请求,避免重复请求
目录 一、避免重复执行的多种情况 (一)根据用途 (二)根据用户操作 二、具体实现 (一)“Ajax ”结合disabled (防止多次请求),避免多次点击重复请求 1. 适用场景 2. 解决办法 3. 示例 &…...
RHCE的学习(22)
第四章 流程控制之条件判断 条件判断语句是一种最简单的流程控制语句。该语句使得程序根据不同的条件来执行不同的程序分支。本节将介绍Shell程序设计中的简单的条件判断语句。 if语句语法 单分支结构 # 语法1: if <条件表达式> then指令 fi #语法2&#x…...
【前端知识】简单讲讲什么是微前端
微前端介绍 一、定义二、背景三、核心思想四、基本要素五、核心价值六、实现方式七、应用场景八、挑战与解决方案 什么是single-spa一、核心特点二、核心原理三、应用加载流程四、最佳实践五、优缺点六、应用场景 什么是 qiankun一、概述二、特点与优势三、核心功能四、使用场景…...
AWS IAM
一、介绍 1、简介 AWS Identity and Access Management (IAM) 是 Amazon Web Services 提供的一项服务,用于管理 AWS 资源的访问权限。通过 IAM,可以安全地控制用户、组和角色对 AWS 服务和资源的访问权限。IAM 是 AWS 安全模型的核心组成部分,确保只有经过授权的用户和应…...
暗黑破坏神2角色编辑器:5分钟打造完美角色的终极指南
暗黑破坏神2角色编辑器:5分钟打造完美角色的终极指南 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 还在为暗黑破坏神2中漫长的练级过程而苦恼?想要快速测试不同职业的bui…...
AI自动化不是接工具就行,得补缺点搭轨道
你有没有过这种经历? 点了一杯定制奶茶,本来想着 “全自动机器做,我啥也不用管,等着拿就行”。 结果呢? 机器煮茶到一半,弹出来问你:“我要开始煮茶了哦,确认一下?” 加珍…...
初创公司技术选型时为何应考虑 Taotoken 这类大模型聚合平台
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创公司技术选型时为何应考虑 Taotoken 这类大模型聚合平台 对于初创公司而言,技术栈的早期选择往往决定了未来数年的…...
华硕笔记本性能优化终极指南:3步告别臃肿控制软件,用G-Helper重获流畅体验
华硕笔记本性能优化终极指南:3步告别臃肿控制软件,用G-Helper重获流畅体验 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar,…...
UVA10464 Big Big Real Numbers 题解
UVA10464 Big Big Real Numbers 题目描述 Link: https://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&category16&pageshow_problem&problem1405 PDF 输入格式 输出格式 输入输出样例 #1 输入 #1 8 1111.332 1123.1112 .223 9.8963 0.…...
链表存储式栈
#include <stdio.h> #include <stdlib.h>#include <stdio.h> #include <stdlib.h> #include <string.h>#include <stdlib.h> typedef struct stack_node{int data;struct stack_node * next; } STstacknode; /*声明一个结构体来存储栈顶&a…...
别再只会-sS了!Nmap实战:用Wireshark抓包带你搞懂TCP全连接、SYN半连接和隐秘扫描的区别
穿透网络迷雾:用Wireshark解密Nmap扫描背后的TCP握手玄机 在网络安全评估和渗透测试中,端口扫描是最基础却最关键的步骤。大多数工程师都能熟练使用nmap -sS进行SYN扫描,但你是否真正理解数据包在网络层究竟经历了什么?当防火墙规…...
在线教程丨单卡即可爆改,面壁智能等开源MiniCPM-V-4.6,1.3B端侧模型支持图像理解/视频理解/OCR/多轮多模态对话
过去几年,整个 AI 行业几乎都笼罩在 Scaling Law 的叙事之下。参数越大、训练数据越多,模型似乎就越接近「通用智能」。从千亿到万亿参数,大模型不断刷新人们对推理能力与世界知识的想象,也让「堆算力、卷规模」成为行业默认的发展…...
RISC-V开源指令集架构:从设计哲学到商业落地的芯片设计新范式
1. 开源指令集架构的浪潮:从RISC-V研讨会看芯片设计新范式2015年6月底,加州大学伯克利分校的一场研讨会,意外地成为了半导体行业一个微小但意义深远的注脚。这场以RISC-V——一个源自伯克利的开源指令集架构——为主题的会议,不仅…...
告别Windows!手把手教你用Proxmox虚拟机零成本体验深度Deepin 20.6
在Proxmox虚拟环境中优雅体验Deepin:技术爱好者的零成本尝鲜指南 对于技术爱好者而言,尝试新操作系统总伴随着两难:既想深度体验系统特性,又担心影响现有工作环境。Proxmox VE作为开源的虚拟化平台,配合Deepin这一国产…...
