就像一个人,从出生到死亡会经历童年、少年、青年、中年、老年各个阶段。如果你是上帝,你可以让他童年做着无忧无虑的事情、少年用功读书、青年到处游学、中年娶妻生子、老年儿孙满堂。
Vue.js让你有了上帝之手,可以操纵Vue实例的整个生命周期。
一、生命周期
每个 Vue 实例在被创建之前都要经过一系列的初始化过程。例如,实例需要:
配置数据观测(data observer)
编译模版、挂载实例到 DOM
在数据变化时更新 DOM
在这个过程中,实例也会调用一些生命周期钩子 ,这就给我们提供了执行自定义逻辑的机会。从Vue实例创建、运行、到销毁期间,会伴随着触发各种各样的事件,这些事件,统称为生命周期。
生命周期钩子 = 生命周期函数 = 生命周期事件
二、Vue实例生命周期图示
生命周期中事件划分:
1) 创建期间的生命周期函数
beforeCreate
实例刚在内存中被创建出来,此时,还没有初始化好 data 和 methods 属性;
created
实例已经在内存中创建完毕,此时 data 和 methods 已经创建完毕,此时还没有开始编译模板;
beforeMount
此时已经完成了模板的编译,但是还没有挂载到页面中;
mounted
此时已经将编译好的模板,挂载到了页面指定的容器中显示;
2) 运行期间的生命周期函数
beforeUpdate
状态更新之前执行此函数, 此时 data 中的状态值是最新的,但是界面上显示的 数据还是旧的,因为此时还没有开始重新渲染DOM节点;
updated
实例更新完毕之后调用此函数,此时 data 中的状态值 和 界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了!
3) 销毁期间的生命周期函数
beforeDestroy
实例被销毁之前调用,在该函数中,实例仍然完全可用。
destroyed
Vue 实例销毁后调用,调用该函数后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。