Vue (三) 生命周期--钩子函数

2023-11-20

生命周期

Vue官网生命周期的描述
在这里插入图片描述

钩子函数

1. beforeCreate
创建Vue实例化之前所调用的函数

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

	</head>
	<body>
		<div id="app">
			<h1>{{message}}</h1>
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data: {
					message: "Vue"
				},
				beforeCreate: function() {
					console.group('------beforeCreate--vue创建前状态------');
					console.log("el     : " + this.$el); //undefined
					console.log("data   : " + this.$data); //undefined 
					console.log("message: " + this.message)
				},
			})
		</script>
	</body>
</html>

在这里插入图片描述
2. created
实例创建完成,此时可以访问实例中的data的属性和methods中的方法,但不能操作dom。因为页面还未加载成功,页面未显示。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

	</head>
	<body>
		<div id="app">
			<h1>{{message}}</h1>
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data: {
					message: "Vue"
				},
				created: function() {
					console.group('------created--vue创建完毕状态------');
					console.log("%c%s", "color:red", "el     : " + this.$el); //undefined
					console.log("%c%s", "color:red", "data   : " + this.$data); //已被初始化 
					console.log("%c%s", "color:red", "message: " + this.message); //已被初始化
				},
			})
		</script>
	</body>
</html>

在这里插入图片描述

3. beforeMount
渲染dom之前,加载组件第一次渲染

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<h1>{{message}}</h1>
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data: {
					message: "Vue"
				},
				beforeMount: function() {
					console.group('------beforeMount,data数据挂载前状态------');
					console.log("el     : " + (this.$el)); //已被初始化
					console.log(this.$el.innerHTML);
					console.log("data   : " + this.$data); //已被初始化  
					console.log("message: " + this.message); //已被初始化  
				},
			})
		</script>
	</body>
</html>

在这里插入图片描述
4. mounted
组件模板已经渲染到指定的el,页面显示,可以操作dom

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<h1>{{message}}</h1>
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data: {
					message: "Vue"
				},
				mounted: function() {
					console.group('------mounted data数据挂载结束状态------');
					console.log("el     : " + this.$el); //已被初始化
					console.log(this.$el.innerHTML);
					console.log("data   : " + this.$data); //已被初始化
					console.log("message: " + this.message); //已被初始化 
				},
			})
		</script>
	</body>
</html>

在这里插入图片描述
5. beforeUpdate
数据更新时执调用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<input type="text" v-model.lazy="message">
		</div>
		<script type="text/javascript">
			var vm = new Vue({
						el: "#app",
						data: {
							message: "Vue"
						},
						beforeUpdate: function() {
							console.group('beforeUpdate  data数据更新前状态==============');
							console.log("el     : " + this.$el);
							console.log(this.$el.innerHTML);
							console.log("data   : " + this.$data);
							console.log("message: " + this.message);
							}
						})
		</script>
	</body>
</html>

在这里插入图片描述
6 .updated
组件更新完成
注意:关于update的钩子函数,都是页面动态渲染有关,每当数据变化时页面更新,都会触发这些钩子,这些钩子的触发频率很高。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<input type="text" v-model.lazy="message">
		</div>
		<script type="text/javascript">
			var vm = new Vue({
						el: "#app",
						data: {
							message: "Vue"
						},
						updated: function() {
							console.group('updated  data数据更新完成状态==============');
							console.log("%c%s", "color:red", "el    : " + this.$el);
							console.log(this.$el.innerHTML);
							console.log("%c%s", "color:red", "data   : " + this.$data);
							console.log("%c%s", "color:red", "message: " + this.message);
						}
						})
		</script>
	</body>
</html>

在这里插入图片描述
7. beforeDestroy
组件将要销毁
8. destroyed
组件销毁完成。常在该时机移除耗时操作

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<input type="text" v-model.lazy="message">
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data: {
					message: "Vue"
				},
				beforeDestroy: function() {
					console.log("vue对象销毁前状态")
				},
				destroyed: function() {
					console.log("vue对象销毁完成状态")
				}
				
			})
		</script>
	</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue (三) 生命周期--钩子函数 的相关文章

随机推荐

  • cisco 小型园区与网络的构建及其应用

    一 实验目的 熟练构建小型区域网络 二 实验设备 Cisco 2811 路由器 6台 cisco 3650 交换机 6台 cisco 2960 交换机7台 pc机8台 服务器6台 数据线缆若干 三 实验拓扑 四 实验步骤
  • applicationContext.xml第一行无缘无故报错!!!

    eclipse的bug 在projects里clean一下 就好了 右键project的validate不管用
  • python实现OCR识别图片验证码

    用cv2模块读取和显示模块 导包cv2拓展模块 import cv2 先给窗体起名字 cv2 namedWindow ShowImage1 cv2 namedWindow ShowImage2 image1 cv2 imread img01
  • 04757信息系统开发与管理2011版考试大纲思维导图

    第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 不考 思维导图下载地址 MindMaster绘制 链接 https pan baidu com s 1U BRcRyUgZ8QUqlDuOLy w pwd qwzt 提
  • 通过 raft 的 leader lease 来解决集群脑裂时的 stale read 问题

    通过 raft 的 leader lease 来解决集群脑裂时的 stale read 问题 问题 当 raft group 发生脑裂的情况下 老的 raft leader 可能在一段时间内并不知道新的 leader 已经被选举出来 这时候
  • C语言冒泡排序和选择排序

    一 冒泡排序法 假设从小到大排序 例一数组 int arr 2 1 34 5 arr 0 先跟相邻的arr 1 比较大小 如果比它大则交换两个数值位置 大的数值放在后面 然后比较arr 1 和arr 2 的大小 以此类推 直至第n 2个和第
  • MCDF实验——Lab0

    MCDF实验 一 MCDF功能描述 二 设计结构 三 接口描述 1 系统信号接口 2 通道从端接口 3 整形器接口 4 控制寄存器接口 四 接口时序 1 通道从端接口时序 2 整形器接口时序 3 控制寄存器接口时序 五 寄存器描述 1 地址
  • day4-Django的model

    目录 1 setting文件配置 2 理解models 3 model定义 4 常用字段类型 5 常用属性 6 数据库迁移 7 Meta类 1 setting文件配置 sqlite数据库 DATABASES default ENGINE d
  • AIGC潮水中,重新理解低代码

    如果将一句话生成应用形容成L4级的 无人驾驶 伙伴云的 AI搭建 则更像L2 级的 辅助驾驶 作者 斗斗 出品 产业家 2023年 AIGC下的低代码赛道 暗流涌动 对于 AI搭建 的搭建效果 尤其是在场景覆盖的广度上 连我自己也感觉比较意
  • Qt Creator创建C++(Day1)

    利用Qt Creator创建纯C 项目流程 1 如下图所示 按照序号选择即可 2 更改名字和选择保存路径 3 点击 下一步 4 直接点击 完成 注意事项 如果在控制台输出中文乱码修改过程如下 1 选中 工具 选项 2 将 UTF 8 改为
  • 语音活性检测器 webrtcvad

    目录 概述 安装 使用脚本 1 测试静音片段 2 清理静音片段 概述 WebRTC是一个免费 开放的框架 项目 使web浏览器通过简单的JavaScript api接口实现实时通信功能 WebRTC An open framework fo
  • 动态规划之多重背包模型

    前置知识 01背包问题 动态规划之01背包模型 如何何何的博客 CSDN博客 完全背包问题 动态规划之完全背包模型 如何何何的博客 CSDN博客 多重背包问题 给定一个有一定容量的背包 和 n 个物品 每个物品有 si 件 每个物品有其对应
  • taoCMS v3.0.2 任意文件上传漏洞(CVE-2022-23880)

    靶标介绍 taoCMS v3 0 2 文件管理处存在任意文件上传漏洞 攻击者可执行任意代码 漏洞复现 1 使用御剑扫描后台 或者直接输入 admin 就会跳转到登录界面 弱口令尝试 账号admin 密码tao 2 在文件管理处 新建文件为1
  • CVPR 2023

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 点击进入 gt 计算机视觉和Transformer 交流群 作者 Oliiiver 源 知乎 编辑 CVer公众号 https zhuanlan zhihu com p
  • 使用TensorFlow Lite将深度学习模型部署到IOT系统

    使用TensorFlow Lite将深度学习模型部署到IOT系统 TensorFlow Lite简介 移动设备深度学习框架是部署在手机或者树莓派等小型移动设备上的深度学习框架 可以使用训练好的模型在手机等设备上完成推理任务 这一类框架的出现
  • yolov5--完全炼丹指南

    目录 前言 炼丹方法 收集数据集 划分数据集 yolov5模型训练 简单提升训练效果的措施 关于参数的说明 结语 前言 最近在做yolov5识别手势的项目 爬了很多坑 也排除了不少bug 记录一下 参考前人的经验 遇到写得好的文章我会推荐
  • 打印出1-10000之间的所有对称数(如121,1331,2442)。

    练习题 打印出1 10000之间的所有对称数 如121 1331 2442 自己写的代码 var isSym function num var str for var i 1 i lt 9 i 如果个位算 可去掉注释 str i str f
  • 干掉广告和钓鱼,这款神器绝了!

    大家好 我是良许 前几天 搜狐丢人丢大发了 自家的员工居然遭遇了钓鱼诈骗 据报道 某员工使用邮件时被意外钓鱼导致密码泄露 进而被冒充财务部盗发邮件 共有 24 名员工被骗取 4 万余元 要知道 搜狐可是国内最早的四大门户网站之一 同时也是国
  • 【9.19】正则表达式——sed、awk

    9 19 正则表达式 sed awk 9 4 9 5 sed 1 sed 匹配 2 sed打印具体行数 3 sed 替换功能 9 6 9 7 awk 1 awk 匹配 2 awk 数学运算表达式 3 两个字段比较大小 4 内置变量 OFS
  • Vue (三) 生命周期--钩子函数

    生命周期 Vue官网生命周期的描述 钩子函数 1 beforeCreate 创建Vue实例化之前所调用的函数 div h1 message h1 div