生命周期代表了Vue从初始化到销毁之间一系列的过程。
Vue的生命周期
- beforeCreate: 创建前
实例初始化后,进行数据观测以及事件的配置。
- created:创建后
实例已经创建完成和被调用,响应式属性和方法已经配置完成。
可以进行数据资源的请求。
- beforeMount:挂载前
确定是否设置el选项(vm.$mount),是否有template若有则渲染template模板中的内容,若没有渲染外部HTML
- mounted:挂在后
可以获取到DOM元素
- beforeUpdate: 更新前
- updated:更新后
依赖于DOM操作,可以更新DOM操作,但不要更新data中数据,若更新data中数据,可能会陷入死循环。
- beforeDestroy:销毁前
调用vm.$destroy()函数时会调用beforeDestroy和destroyed
- destroyed:销毁后 主要是执行优化的操作,如清空定时器,销毁子组件,解除事件的绑定等。
存在子组件的情况
当父组件中存在子组件时,执行顺序:
- 父:创建前 => 创建后 => 挂载前 =>
- 子:创建前 => 创建后 => 挂载前 => 挂载后 =>
- 父: 挂载后 => 销毁前 =>
- 子: 销毁前 => 销毁后 =>
- 父: 销毁后(真正的根实例销毁)