Vue实例的生命周期

2018-08-26  本文已影响22人  昊啊昊儿哟
什么是生命周期

定义:生命周期是指vue实例或者组件从诞生到消亡经历的每一个阶段 ,在这些阶段的前后可以设置一些函数当做事件来调用.

生命周期流程

vue生命周期流程图.png

图解:

beforeCreate

创造vue实例之后运行此函数,vm中的data/methods中的成员不可以使用

beforeCreate:function () {
    console.log("创造vue实例中,data/methods不可以使用")
}
created

创造vue实例之后运行此函数,vm中的data/methods属性可以使用

created:function(){
    console.log("创造vue实例中,data/methods可以使用")
}
beforeMount

当vue实例的el节点或者组件挂载到页面以前运行此函数

beforeMount:function(){
    console.log("即将挂载el节点(组件)")
}
Mounted

当vue实例el节点或组件挂载到页面以后运行此函数

mounted:function(){
    console.log("el节点(组件)挂载到页面完毕")
}
beforeUpdate
beforeUpdate:function(){
      console.log("vue实例数据即将发生改变")
}
updated
updated:function(){
    console.log("vue实例数据已经发生了改变")
}

beforedestroy

beforeDestroy() {
            console.log('即将销毁vue实例对象');
        }

destroyed

destroyed() {
            console.log('vue实例对象被销毁了');
        }

综合:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{ msg }}
        <input type="text" ref="txt" v-model="msg">
    </div>
</body>
<script src="./vue.js"></script>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            msg: 'hello vue',
            dataList: []
        },
        // 在vue对象初始化之前执行
        beforeCreate(){
            console.log('beforeCreate');
            console.log(this.msg);// undefined
        },
        // 在vue对象初始化之后执行
        created() {
            console.log('created');
            console.log(this.msg);//hello vue
        },
        // 在页面渲染之前执行
        beforeMount() {
            console.log('beforeMount');
            console.log(this.$refs.txt);// undefined
        },
        // 在页面渲染之后执行
        mounted() {
            console.log('mounted');
            console.log(this.$refs.txt);// <input type="text">
        },
        // 在更新之前执行
        beforeUpdate() {
            console.log('beforeUpdate');
        },
        // 在更新之后执行
        updated() {
            console.log('updated');
        },
        // 在对象被销毁之前执行
        beforeDestroy() {
            console.log('beforedestroy');
        },
        // 在对象被销毁之后执行
        destroyed() {
            console.log('destroyed');
        },
    });
</script>
</html>

Vue生命周期的总结

var vm = new Vue(); // 开启了一段生命周期

上一篇 下一篇

猜你喜欢

热点阅读