vue的生命周期

111 阅读1分钟

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>