Vue 的生命周期学习总结

106 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

前言

最近在学习 Vue 的生命周期,在这里总结下所学知识,如有缺陷,欢迎大家指正。

学习总结

Vue 的生命周期其实总共有 8 个函数,精简的说是有 4 对。它们分别来完成 Vue 实例在创建到销毁的过程中的所有操作。

具体内容

生命周期函数表

标题作用
将要创建调用 beforeCreate
创建完毕调用 created
将要挂载调用 beforeMount
挂载完毕(重要)调用 mounted
将要更新调用 beforeUpdate
更新完毕调用 updated
将要摧毁(重要)调用 beforeDestroy
摧毁完毕调用 destroyed

创建

  • 初始化:生命周期、事件、但数据代理还未开始

  • beforeCreate:此时无法通过 vm 访问到 data 中的数据、methods 中的方法

  • 初始化:数据监测、数据代理

  • created:可以通过 vm 访问到 data 中的数据、methods 中的方法

  • vue 开始解析模板,生成虚拟 DOM(内存中),页面还不能显示解析好的内容

挂载

  • beforeMount:页面呈现的是未经 vue 编译的 DOM 结构,所有对 DOM 的操作均不奏效

  • 将内存中的虚拟DOM转为真实DOM插入页面

  • mounted:页面呈现的是经过 Vue 编译的 DOM,一般在此进行:开启定时器、发送网络请求、订阅消息、绑定自定义事件等初始化操作

更新

  • beforeUpdate:此时数据是新的,但是页面是旧的。即:页面尚未和数据保持同步

  • 根据新数据,生成新的虚拟 DOM,随后与旧的DOM进行比较,最终完成页面更新。即:完成 Model——>View 的更新

  • updated:此时数据是新的,页面也是新的

销毁

  • beforeDestroy:vm 中所有的 data、methods、指令等都处于可用状态,马上要进行销毁。一般在此阶段进行关闭定时器、取消订阅消息、解除自定义事件等收尾操作

  • destroyed:一般不操作此函数