Vue 中生命周期定义及流程
作者:??奔跑吧鸡翅???? 时间:2024-05-09 15:21:54
一、生命周期定义
生命周期:又名:生命周期回调函数、生命周期函数、生命周期钩子
生命周期是什么:Vue在关键时刻帮我们调用的一些特殊名称的函数 3.生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的 4.生命周期函数中的 this 指向是 vm 或组件实例对象
做一个小例子,要求页面的文字一上来透明度就周而复始的从1变到0
<div id="root">
<h2 :style="{opacity: opacity}">好好学习</h2>
<h2 :style="{opacity}">天天向上</h2>
</div>
<script type="text/javascript">
Vue.config.productionTip = false
//创建vue实例
new Vue({
el: "#root",
data: {
opacity: 1
},//Vue完成模板解析,并把初始的真实dom放入页面后(挂载完毕)调用mounted
mounted(){
setInterval(()=>{
this.opacity -= 0.01
if(this.opacity <=0) this.opacity = 1
},20)
}
})
</script>
二、生命周期流程
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue初识</title>
<script type="text/javascript" src="./js/vue.js"></script>
</head>
<body>
<div id="root">
<h2 :style="{opacity}">天天向上</h2>
<button @click="opacity = 1">透明度设置为1</button>
<button @click="stop">点我停止变换</button>
</div>
<script type="text/javascript">
Vue.config.productionTip = false
//创建vue实例
new Vue({
el: "#root",
data: {
opacity: 1
},
methods:{
stop(){
this.$destroy()
}
},
mounted(){
this.timer = setInterval(()=>{
this.opacity -= 0.01
if(this.opacity <=0) this.opacity = 1
},20)
},
beforeDestroy(){
console.log("beforeDestroy")
clearInterval(this.timer)
}
})
</script>
</body>
</html>
三、总结
vm的一生(vm的生命周期):
将要创建------>调用
beforeCreate
函数创建完毕------>调用
created
豳数将要挂载------>调用
beforeMount
函数挂载完毕------>调用
mounted
函数【重要的钩子】将要更新------>调用
beforeUpdate
函数更新完毕------>调用
updated
函数。将要销毁------>调用
beforeDestroy
函数【重要的钩子】销毁完毕------>调用
destroyed
函数
常用的生命周期钩子:
1.
mounted
:发送ajax请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】2.
beforeDestroy
:清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】
关于销毁Vue实例:
1、销毁后借助Vue开发者工具看不到任何信息
2、销毁后自定义事件会失效,但原生DOM事件依然有效
3、一般不会在
beforeDestroy
操作数据,因为即便操作数据,也不会再触发更新流程了
来源:https://juejin.cn/post/7091075699527647246
标签:Vue,生命,周期


猜你喜欢
Go流程控制代码详解
2023-09-01 10:21:12
ASP 三层架构 Error处理类
2011-03-16 11:06:00
win10下MySQL 8.0登录Access denied for user‘root’@‘localhost’ (using password: YES)问题的解决方法
2024-01-19 05:31:09

一篇文章带你了解python标准库--sys模块
2022-04-25 10:21:37
python使用xpath获取页面元素的使用
2021-04-30 10:32:09

Oracle查看和修改连接数(进程/会话/并发等等)
2024-01-21 15:59:42
asp数字或者字符排序函数代码
2011-02-24 11:00:00
sql通过日期判断年龄函数的示例代码
2024-01-13 21:01:02

linux 后台日志 mysql 错误异常的解释(推荐)
2024-01-26 06:01:42
一个不错的js软键盘代码而且移植方便
2007-08-14 12:56:00

JS+ASP实现无刷新新闻列表之分页
2007-08-22 12:57:00
Python计算机视觉SIFT尺度不变的图像特征变换
2022-08-01 00:28:44

编写一个javascript元循环求值器的方法
2024-04-23 09:28:15
深入了解Python枚举类型的相关知识
2022-08-02 06:15:40
layer 刷新某个页面的实现方法
2024-04-10 10:46:39
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2021-05-19 06:09:39
Python3 webservice接口测试代码详解
2022-10-21 18:54:51
python读取查看npz/npy文件数据以及数据完全显示方法实例
2022-05-15 15:45:36

Vue.js实现微信过渡动画左右切换效果
2023-07-02 17:03:10

asp如何用Jmail组件的发送电子邮件?
2010-06-12 12:51:00