Vue生命周期
从Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,就是Vue实例的生命周期。
1.创建期间的生命周期函数:
beforeCreate:实例刚在内存中被创建出来,此时,还没有初始化好 data和methods属性。
created:实例已经在内存中创建完成。此时data和methods已经在内存中创建完成,但是还没有开始编译模板。
beforeMount:此时已经完成了模板的编译,但是还没有挂载到页面中显示。
mounted:此时,已经将编译好的模板,挂载到了页面指定的容器中显示。
2.运行期间的生命周期函数:
beforeUpdate:状态更新之前执行该函数, 此时 data 中的状态值是最新的,但是界面上显示的 数据还是旧的,因为此时还没有开始重新渲染DOM节点。
updated:实例更新完毕之后将会调用此函数,此时 data 中的状态值和界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了!
3.销毁期间的生命周期函数:
beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
destroyed:Vue 实例销毁后调用。调用之后Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
生命周期钩子
Vue组件实例在创建时要经历一系列初始化步骤:
- 数据帧听设置
- 编译模板
- 挂载到DOM
- 数据改变时更新DOM
在此过程中也运行的函数被称为钩子函数
注册周期钩子
mounted 钩子可以用来在组件完成初始渲染并创建 DOM 节点后运行代码;
所有生命周期钩子函数的 this 上下文都会自动指向当前调用它的组件实例。注意:避免用箭头函数来定义生命周期钩子,因为如果这样的话你将无法在函数中通过 this 获取组件实例。