一、beforeCreate
在这个生命周期中,主要进行实例的创建,以及事件的初始化、周期的初始化以及render方法的初始化
var vm=new Vue({
el:'#app',
data:{},
methods:{
test(){
console.log('test')
}
},
beforeCreate(){
console.log(this.$el) //undefined
console.log(this.$data) //undefined
console.log(this.test) //undefind
}
})
二、created:
在这个生命周期中 ,进行了data与props的初始化和监测、methods、computed和watch的初始化
var vm=new Vue({
el:'#app',
data:{},
methods:{
test(){
console.log('test')
}
},
created(){
console.log(this.$el) //undefined
console.log(this.$data) //{}
console.log(this.test) //function(){}
}
})
三、beforeMount
在这个生命周期中,首先会判断配置中是否有el选项,如果有会继续向下执行,如果没有,则停止运行,直到在该实例上执行了vm.$mount方法。如果有el选项或者调用了vm.$mount,接下来会检测配置中是否有template选项,如果有,会将其作为模板编译成render函数,如果没有就会通过el找到对应的outerHTML作为模板编译进render函数。
四、mounted
el被禁创建的vm.$el替换并挂载到实例上。
五、update
当vue发现data中的数据发生了改变,会触发对应组件的重新渲染,先后调用beforeUpdate和updated钩子函数。
六、destroy
beforeDestroy钩子函数在实例销毁之前调用。在这一步,实例仍然完全可用。
destroyed钩子函数在Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。