Vue.js2.0的生命周期及钩子函数介绍

什么是钩子函数

​ 钩子函数是一个事件触发时,在系统级捕获到了它,然后做的一些操作。“钩子”就是在某个阶段给你一个做某些处理的机会。

特点:

​ 1、是函数,在系统消息触发时被系统调用;
​ 2、不是用户自己出发的;
​ 3、钩子函数的名称是确定的,当系统消息触发时自动调用;

vue生命周期共分为四个阶段

1:实例创建
2:DOM渲染
3:数据更新
4:销毁实例

共有八个基本钩子函数

1.beforeCreate --创建前
触发的行为:vue实例的挂载元素$el和数据对象data都为undefined,还未初始化。
在此阶段可以做的事情:加loading事件

2.created --创建后
触发的行为:vue实例的数据对象data有了,$el还没有
在此阶段可以做的事情:解决loading,请求ajax数据为mounted渲染做准备

3.beforeMount --渲染前
触发的行为:vue实例的$el和data都初始化了,但还是虚拟的dom节点,具体的data.filter还未替换
在此阶段可以做的事情:。。。

4.mounted --渲染后
触发的行为:vue实例挂载完成,data.filter成功渲染
在此阶段可以做的事情:配合路由钩子使用

5.beforeUpdate --更新前
触发的行为:data更新时触发
在此阶段可以做的事情:。。。

6.updated —更新后
触发的行为:data更新时触发
在此阶段可以做的事情:数据更新时,做一些处理(此处也可以用watch进行观测)

7.beforeDestroy —销毁前
触发的行为:组件销毁时触发
在此阶段可以做的事情:可向用户询问是否销毁

8.destroyed —销毁后
触发的行为:组件销毁时触发,vue实例解除了事件监听以及和dom的绑定(无响应了),但DOM节点依旧存在
在此阶段可以做的事情:组件销毁时进行提示

生命周期图示

下图展示了实例的生命周期。你不需要立马弄明白所有的东西,不过随着你的不断学习和使用,它的参考价值会越来越高。(图片来自Vue官网2.0教程)

Vue.js2.0的生命周期及钩子函数介绍