vue生命周期即为一个组件从出生到死亡的一个完整周期,有4个阶段:创建,挂载,更新,销毁。
创建前:beforeCreate 创建后:created
挂载前:beforeMount 挂载后:mounted
更新前:beforeUpdate 更新后:updated
销毁前:beforeDestroy 销毁后:destroyed
常用的钩子
created:用于获取后台数据,mounted用于dom挂载完后做一些dom操作,以及初始化插件等。beforeDestroy用于清除定时器以及解绑事件等,另外还有使用内置组件keep-alive来缓存实例,而不是频繁创建销毁(开销大),actived实例激活,deactived实例失败。
vue生命周期的作用是什么
vue的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑。
第一次页面加载会触发哪几个钩子
beforeCreate, created, beforeMount, mounted,这四个钩子只执行一次
DOM渲染在哪个周期中已经完成
mounted
vue当中,有哪两个钩子会执行多次
beforeUpdate和updated,只要改了data中的数据,就会触发beforeUpdate,和updated这两个钩子执行
每个生命周期运用
<script>
export default {
// 创建前:在实例初始化之后,数据观测和事件配置之前被调用
beforeCreate(){
console.log('beforeCreate');
},
// 创建后:实例已经创建完成之后被调用
created(){
console.log('created');
},
// 挂载前:页面准备挂载时候被调用,此时相关的渲染函数首次被调用
beforeMount(){
console.log('beforeMount');
},
// 挂载后:挂载完成,也就是模板中的HTML渲染到HTML页面中,此时一般可以做一些ajax操作,mounted只会执行一次。
mounted(){
console.log('mounted');
},
// 更新前:数据更新之前被调用
beforeUpdate(){
console.log('beforeUpdate');
},
// 更新后:数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子
updated(){
console.log('updated');
},
// 销毁前:我们将要销毁整个页面或实例时调用
beforeDestroy(){
console.log('beforeDestroy');
},
// 销毁后:我们的整个页面或实例被销毁之后调用
destroyed(){
console.log('destroyed');
},
// 被 keep-alive 缓存的组件激活时调用
actived(){
console.log('activated');
},
// deactived配合keep-alive来使用
// 使用了keep-alive就不会调用beforeDestory和destoryed钩子了
// 因为组件没有被销毁,而是被缓存起来了
// 所以deactived钩子可以看做是beforeDestory和destoryed的替代
deactived(){
console.log('deactived');
}
}
</script>