生命周期就是组件从创建到销毁的整个过程。也就是从开始创建、初始化数据、编译模板、挂载 Dom→渲染、更新→渲染、卸载等一系列过程,我们称这 是 Vue 的生命周期
生命周期钩子函数就是在生命周期某个时间点自动触发的函数,作用是在特定的时间点,可以执行特定的操作。
Vue生命周期 总共有 11 个,一般又分为常用和不常用两部分,那我们先来谈一谈常用的阶段。
先来官方的图镇楼:

我们常用的又可以分为4大阶段,8个方法
一、初始化阶段
1. beforeCreate (创建前)
2. created (创建后)
当组件实例创建完毕之后自动触发,vue对象的属性有值了,但是DOM还没有生成,$el属性还不存在。此时有数据了,一般会在这个钩子函数中进行数据的获取,但是这个时候dom结构还没有解析,所以无法操作dom。
二、挂载阶段
3.beforeMount(载入前)
在挂载开始之前被调用:相关的 render 函数首次被调用。在这个阶段,vue实例的 $el 和 data都初始化了,此时 this.$el有值,但还是挂载在之前的虚拟的 dom 节点,data.message还未替换,数据还没有挂载到页面上。
4. mounted (载入后)
在 mounted阶段,vue 实例挂载完成, data.message 成功渲染。即:此时已经把数据依据挂载到了页面上,所以,页面上能够看到正确的数据了。
一般来说,我们在此处发送异步请求(ajax,fetch,axios等),获取服务器上的数据,显示在DOM里。
三、更新阶段
5. beforeUpdate (更新前)
6. updated (更新后)
由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
四、销毁阶段
7. beforeDestroy(销毁前)
8. destroyed (销毁后)
五、剩余不常用的钩子函数
剩余的三个钩子函数,用的比较少,了解一下就行了。
9. activated (组件激活时)
10. deactivated (组件失活时)
keep-alive 组件停用时调用。该钩子在服务器端渲染期间不被调用。
11. errorCaptured(2.5.0+ 新增)(捕获到错误时)
当捕获一个来自子孙组件的错误时被调用。此钩子会收到三个参数:错误对象、发生错误的组件实例 以及一个包含错误来源信息的字符串。此钩子可以返回 false 以阻止该错误继续向上传播。