
- beforeCreate
调用时间:在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
2.created
调用时间:在实例创建完成后被立即调用。
在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前尚不可用。
3.beforeMount
调用时间:在挂载开始之前被调用,相关的 render 函数首次被调用。
该钩子在服务器端渲染期间不被调用。
4.mounted
调用时间:实例被挂载后调用,el 被新创建的 vm.$el 替换了。
5.beforeUpdate
调用时间:数据更新时调用,发生在虚拟 DOM 打补丁之前。
6.updated
调用时间:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
7.beforeDestroy
调用时间:实例销毁之前调用。在这一步,实例仍然完全可用。
8.destroyed
调用时间:实例销毁后调用。该钩子被调用后。
对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。
详细执行过程看代码:
<script type="text/javascript">
var vm = new Vue({
el : "#app",
data : {
msg : "hi vue",
},
//在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
beforeCreate:function(){
console.log('beforeCreate');
},
/* 在实例创建完成后被立即调用。
在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。
然而,挂载阶段还没开始,$el 属性目前不可见。 */
created :function(){
console.log('created');
},
//在挂载开始之前被调用:相关的渲染函数首次被调用
beforeMount : function(){
console.log('beforeMount');
},
//el 被新创建的 vm.$el 替换, 挂在成功
mounted : function(){
console.log('mounted');
},
//数据更新时调用
beforeUpdate : function(){
console.log('beforeUpdate');
},
//组件 DOM 已经更新, 组件更新完毕
updated : function(){
console.log('updated');
}
});
setTimeout(function(){
vm.msg = "change ......";
}, 3000);