vue 生命钩子周期之理解

对于vue的初学者来说,理解vue的生命钩子周期是很有必要的。什么是生命钩子周期呢,顾名思义就是 “实例初始化”  到  “实例被销毁” 的过程。

理解vue的生命钩子周期,我们就可以更好的在项目中运用,清楚明白在页面的初始化、页面的渲染、页面的销毁这些过程中所做的事情。

详细资料请参考:https://cn.vuejs.org/v2/api/#beforeCreate


 

<script>
export default{
    name:"test",
    data(){
        return{
            
        }
    },
    beforeCreate(){
        //在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
        console.log(1);
    },
    created(){
        //在实例创建完成后被立即调用。
        //在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。
        //然而,挂载阶段还没开始,$el 属性目前不可见。
        console.log(2)
        
    },
    beforeMount(){
        //在挂载开始之前被调用:相关的 render 函数首次被调用。
        //该钩子在服务器端渲染期间不被调用。
        console.log(3)
    },
    mounted(){
        //el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。
        console.log(4)
        this.showExample(); //调用showExample方法
        var _this = this;
        
        //mounted 不会承诺所有的子组件也都一起被挂载。
        //如果你希望等到整个视图都渲染完毕,可以用 vm.$nextTick 替换掉 mounted
        //该钩子在服务器端渲染期间不被调用。
        this.$nextTick(function () {
            // 这里的代码将会在整个视图都渲染完毕后再执行(包括子组建)
            _this.showExample()  //调用showExample方法
        })
        
    },    
    beforeUpdate(){
        //数据更新时调用,发生在虚拟 DOM 打补丁之前。
        //这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。
        //该钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行。
        console.log(5)
    },
    updated(){
        //由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
        //当这个钩子被调用时,组件 DOM 已经更新
        console.log(6)
        
        
        //updated 不会承诺所有的子组件也都一起被重绘。
        //如果你希望等到整个视图都重绘完毕,可以用 vm.$nextTick 替换掉 updated
        //该钩子在服务器端渲染期间不被调用。
        this.$nextTick(function () {
            // Code that will run only after the
            // entire view has been re-rendered
        })
    },
    beforeDestroy(){
        //实例销毁之前调用。在这一步,实例仍然完全可用。
        //该钩子在服务器端渲染期间不被调用。
        console.log(7)
    },
    destroyed(){
        //Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
        //该钩子在服务器端渲染期间不被调用。
        console.log(8)
    },
    methods:{
        //这是名为showExample的一个方法/函数
        showExample(){
            console.log("example")
        }
    }
}
</script>

 

posted @ 2019-11-14 10:26  秃头的铲屎官  Views(227)  Comments(0Edit  收藏  举报