vue基础五:钩子函数(beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroye)

1. 生命周期的定义
	<!-- 
生命周期:
	1.又名:生命周期回调函数、生命周期函数、生命周期钩子
	2.是什么:Vue在关键时刻帮我们调用的一些特殊名称的函数
	3.生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的
	4.生命周期函数中的this指向是vm 或 组件实例对象
	 -->
	 <!-- 
常用的生命周期钩子:
	1.mounted:发送ajax请求,启动定时器、绑定自定义事件、订阅消息等【初始化操作】
	2.beforeDestory:清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】

关于销毁Vue的实例:
	1.销毁后借助Vue开发者看不到任何信息
	2.销毁后自定义事件会失效,但原生DOM事件依然有效
	3.一般不会再beforeDestory操作数据,因为即便操作数据,也不会再触发更新流程了。
	  -->

实例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>引出生命周期</title>
		<script src="../status/js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<!-- 
		生命周期:
			1.又名:生命周期回调函数、生命周期函数、生命周期钩子
			2.是什么:Vue在关键时刻帮我们调用的一些特殊名称的函数
			3.生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的
			4.生命周期函数中的this指向是vm 或 组件实例对象
	 -->
	<body>
		<div id="app">
			<h3 :style="{opacity:opacity}">欢迎学习Vue</h3>
			<button type="button" @click="stop">关闭变化</button>
			<button type="button" @click="start">开始变化</button>
		</div>
		<script type="text/javascript">
			const vm =new Vue({
				data:function(){
					return{
						opacity:1
					}
				},
				methods:{
					stop:function(){
						clearInterval(this.timer)
						this.timer = null
					},
					start:function(){
						if(this.timer) {
						   return
						}
						this.timer = setInterval(()=>{
							this.opacity -=0.05
							console.log(this.opacity)
							if(this.opacity<=0){
								this.opacity = 1
								}
						},100)
					}
				},
				//Vue完成模板的解析并把真实的DOM元素放入页面后(挂载完毕)调用mounted
				mounted:function(){
						//循环执行(setInterval)  区别:定时执行 (setTimeout)
						// 用法是setInterval(“方法名或方法”,“延时”), 第一个参数为方法名或者方法,注意为方法名的时候不要加括号,第二个参数为时间间隔
					this.timer = setInterval(()=>{
						this.opacity -=0.05
						console.log(this.opacity)
						if(this.opacity<=0){
							this.opacity = 1
							}
					},100)
				}
			})
			vm.$mount("#app")
		</script>
	</body>
</html>

2.钩子函数:beforeCreate、 created
		<script type="text/javascript">
			const vm =new Vue({
				data:function(){
					return{
						n:1
					}
				},
				beforeCreate:function(){
					console.log('该函数:尚未进行数据监测、数据代理')
				},
				created:function(){
					console.log('该函数:可以访问到data、methods等')
				}
			})
			vm.$mount("#app")
		</script>
3.beforeMount、mounted
	<script type="text/javascript">
			const vm =new Vue({
				data:function(){
					return{
						n:1
					}
				},
				beforeMount:function(){
					console.log('该函数:页面呈现的是未经Vue编译的DOM结构,所有对DOM的操作,最终不奏效')
				},
				//Vue完成模板的解析并把真实的DOM元素放入页面后(挂载完毕)
				mounted:function(){
					console.log('该函数:页面中呈现的是经过Vue编译的DOM,对DOM的操作均有效,一般在此进行:开启定时器、发送网络请求、订阅消息、绑定自定义事件、等初始化操作')
				}
			})
			vm.$mount("#app")
		</script>
4.beforeUpdate、updated
<script type="text/javascript">
			const vm =new Vue({
				data:function(){
					return{
						n:1
					}
				},
				//data变化-流程
				beforeUpdate:function(){
					console.log('data变化就调用,数据是新的,但页面是旧的,即:页面尚未和数据保持同步')
				},
				updated:function(){
					console.log('data变化就调用,数据是新的,页面是新的,即:页面和数据保持同步')
				}
			})
			vm.$mount("#app")
		</script>
5.beforeDestroy、destroyed
	<script type="text/javascript">
			const vm =new Vue({
				data:function(){
					return{
						n:1
					}
				},
				//销毁流程:只要调用 vm.$destroy(),下面的两个钩子函数-都会被调用;完全销毁一个实例,清理它与其它实例的连接,解绑它的全部指令与事件监听器
				//;
				//vm中所有的:data、methods、指令等,都处于可用状态,马上要执行销毁过程,一般在此阶段:关闭定时器、取消订阅消息、解绑自定义事件等收尾操作
				beforeDestroy:function(){
					console.log('')
				},
				destroyed:function(){
					console.log('')
				}
			})
			vm.$mount("#app")
		</script>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue.js中,每一个组件都有一个生命周期,它是一个组件从创建到销毁的过程,Vue.js提供了一些钩子函数来让开发者在组件的生命周期不同阶段做不同的操作。 下面是Vue.js组件的生命周期钩子函数: - beforeCreate: 组件实例刚创建,组件的数据观测和事件机制都未初始化,无法访问到组件中的数据和方法。 - created: 组件实例已经创建完成,组件的数据观测和事件机制已经初始化,但是组件还未挂载到页面上。 - beforeMount: 组件已经完成了模板编译,但是还未挂载到页面上。 - mounted: 组件已经挂载到页面上,并且已经渲染出来。 - beforeUpdate: 组件的数据发生了变化,但是页面还未更新。 - updated: 组件的数据发生了变化,并且页面已经更新完成。 - beforeDestroy: 组件即将销毁,此时还可以访问到组件中的数据和方法。 - destroyed: 组件已经销毁,此时无法再访问组件中的数据和方法。 在这些钩子函数中,beforeCreatecreated阶段是组件初始化的阶段,可以在这里进行一些初始化操作,比如从服务端获取数据、初始化一些变量等。beforeMountmounted阶段是组件挂载的阶段,可以在这里进行一些DOM操作。beforeUpdateupdated阶段是组件数据更新的阶段,可以在这里处理一些数据更新的逻辑。beforeDestroy和destroyed阶段是组件销毁的阶段,可以在这里进行一些清理操作,比如清除定时器、取消事件监听等。 总之,通过钩子函数,我们可以在组件的不同生命周期阶段进行不同的操作,从而更好地控制组件的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷凝娇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值