Vue学习笔记:生命周期钩子函数

389 阅读1分钟

生命周期代表了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:销毁后 主要是执行优化的操作,如清空定时器,销毁子组件,解除事件的绑定等。

存在子组件的情况

当父组件中存在子组件时,执行顺序:

  1. 父:创建前 => 创建后 => 挂载前 =>
  2. 子:创建前 => 创建后 => 挂载前 => 挂载后 =>
  3. 父: 挂载后 => 销毁前 =>
  4. 子: 销毁前 => 销毁后 =>
  5. 父: 销毁后(真正的根实例销毁)