前言
生命周期
创建:
挂载:
更新:
销毁:
钩子函数使用方法
<div class="app">
<h1>{{msg}}</h1>
{{num}}
<button @click="add()">+1</button>
<button @click="destroy()">销毁</button>
</div>
<script>
const vm = new Vue({
el:'.app',
data:{
msg:'Vue的生命周期',
num:1
},
methods:{
add(){
this.num++
},
destroy(){
this.$destroy()
}
},
// 创建
// 创建前
beforeCreate(){
console.log('beforeCreate');
},
// 创建后
created(){
console.log('Created');
},
// 挂载
// 挂载前
beforeMount(){
console.log('beforeMount');
},
// 挂载后
mounted(){
console.log('Mounted');
},
// 更新
// 更新前
beforeUpdate(){
console.log('beforeUpdata');
},
// 更新后
updated(){
console.log('Updataed');
},
// 销毁
// 销毁前
beforeDestroy(){
console.log('beforeDestory');
},
// 销毁后
destroyed(){
console.log( 'Destoryed');
}
})
</script>
更新数据
销毁
周期—–创建阶段
该周期包含两个钩子函数,创建前beforeCreate()和创建后Created()
所谓的创建不是指Vue实例的创建,而是指数据代理和数据监测的创建,以此来分创建前和创建后
例:
//创建前
beforeCreate(){
console.log(‘beforeCreate’,this.num);
}
// 创建后
created(){
console.log(‘Created’,this.num);
}
创建阶段做了些什么事
该阶段可以干什么
周期—-挂载阶段
该阶段包含两个钩子函数,挂载前beforeMount()和挂载后mounted()
// 挂载前
beforeMount(){
document.querySelector(‘h1’).innerHTML=’挂载’
}
挂载后是可以修改的
// 挂载后
mounted(){
document.querySelector(‘h1’).innerHTML=’挂载’
}
挂载阶段做了什么事
该阶段适合干什么
周期—-更新阶段
该阶段只有在data变化后才会触发,进行重新渲染
该周期包含两个钩子函数,更新前beforeUpdate()和更新后updated()
这里的更新前是指data中的数据更新了,但是页面还没重新渲染前
更新前
// 更新前
beforeUpdate(){
debugger
}
更新后
解开断点
//更新后
updated(){
}
其中diff算法就是在更新前和更新后之间进行的,虚拟dom进行对比,生成真实dom渲染到页面
更新阶段做了什么事
该阶段适合做什么
周期—-销毁阶段
该阶段包含两个钩子函数,销毁前beforeDestroy()和销毁后Destroy()
该阶段只有调用该方法才能进入
vm.$destroy()
销毁前
// 销毁前
beforeDestroy(){
console.log(‘beforeDestory’);
debugger
}
虽然是激活状态,但是还是无法监听,我们在原有的代码基础上监听data中的num属性
watch:{
num(){
console.log('监听一次');
}
},
当num属性值变化时,成功监听到了,当我们执行销毁时,由上得知,监听器还是在激活状态
但是以及无法监听了
销毁后
// 销毁后
destroyed(){
console.log( ‘Destoryed’);
console.log(this);
}
销毁阶段做了什么事
该阶段适合做什么
原文地址:https://blog.csdn.net/weixin_68854196/article/details/134552514
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_14179.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!