Vue 的生老病死

379 阅读2分钟

前言

学习 Vue 不得不提的就是 Vue 的生命周期。Vue 的生命周期,简单来说就是 Vue 实例从初始化创建到销毁的一系列过程。
怎样理解这个过程呢?先别急,让我们来康康人的一生是怎样的。

  • 一岁哭着出场(创建)
  • 十岁功课繁忙
  • 二十春心荡漾
  • 三十基本定向
  • 四十事业栋梁
  • 五十老当益壮
  • 六十荣归家乡
  • 七十打打麻将
  • 八十晒晒太阳
  • 九十躺在床上
  • 百岁挂在墙上(销毁) 本篇文章主要讲解 Vue 生命周期知识点,让大家理解 Vue 实例从初始化创建到销毁的一系列过程。 一睹为快,本文的主要内容如下: image.png

生命周期图示

Vue 实例的生命周期如下: vue生命周期.png 注:图片是来源于网络,具体是哪篇文章我不记得了,没有标明出处,还请见谅。

初始化阶段

beforeCreate

  • 实例完全被创建出来之前会执行它,在 beforeCreate() 执行的时候,data 和 methods 中的数据都还没有初始化

created

  • 在 created 中,data 和 methods 都已经初始化好了
  • 如果要调用 methods 中的方法或者要操作 data 中的数据,最早只能在 created 中操作
  • 在此阶段 DOM 还未生成,$el 属性还不存在,不能操作 DOM

beforeMount

  • 模板编译/挂载之前。
  • 模板已在内存中编辑完成,尚未渲染至页面
  • 页面中的元素还没有被真正的替换过来,仍为上一个模板的数据

mounted

  • 模板编译/挂载之后。
  • 内存中的模板已真正的挂载到了页面中,用户已看到渲染好的页面
  • mounted 是实例创建期间的最后一个生命周期函数
  • 当执行完mounted 就表示实例已经被完全创建好了,此时可以操作 DOM

数据更新阶段

beforeUpdate

  • 组件更新之前,页面中显示的数据还是旧的,此时 data 数据是最新的,页面尚未和最新的数据保持同步

updated

  • 组件更新之后,页面和 data 中的数据已经保持同步,都是新的

销毁阶段

beforeDestory

  • 组件销毁前调用,当执行 beforeDestory 钩子函数的时候,vue实例已经从运行阶段进入到了销毁阶段
  • 实例上所有的 data 和 methods,以及过滤器指令,都处于可用状态,此时还没有真正执行销毁过程

destoryed

  • 组件销毁后调用,组件已完全销毁

写在最后

学到这里,相信你对 Vue 的生命周期已经有了更清晰的认识。    

你要相信,你是最棒的。