对Vue 生命周期 做小小总结。

95 阅读2分钟

首先先上图片:

lifecycle.png

所谓生命周期,即为Vue在运行的过程中所经历的一系列流程,其中每一个步骤都会对应着相应的函数(生命周期函数)。

new vue()开始:

  • 初始化生命周期事件,但此时数据代理还未开始
  1. beforeCreate() :此时无法访问到data中的数据,以及methods 中的方法。
  • 进行初始化,数据监测,数据代理...
  1. created() : 此时可以通过Vm来访问到data中的数据,和methods中所配置的方法。
  • Vue 开始解析模版,在内存中生成虚拟Dom,但是此时页面上还不能显示解析好的内容。
  1. beforeMount(): 此时页面呈现的是未经Vue编译的Dom结构,此时对于Dom的操作无效。
  • 将虚拟Dom转化为真实Dom插入页面中。
  1. Mounted(): 此时页面呈现的是vue编译过的Dom,至此初始化阶段结束,一般在此时可以做一些操作。(开启定时器,发送网络请求,订阅消息,绑定自定义事件,等一系列初始化操作)
  2. beforeUpdate():此时数据已经更新,但是页面上并没有更新,页面与数据未保持同步。
  3. Updated(): 根据新的数据,已经完成了新的Dom,并与旧的Dom元素进行比较,即完成了model到view的更新。
  • 此时数据和页面都是最新的,并且已经保持同步。
  1. beforeUnmount():~~beforeDestory()~~此时Vm中的Date,methods指令,都处于可用状态,马上执行销毁。(此时惊醒关闭定时器,取消订阅,解绑自定义事件等收尾操作。)
  2. Unmounted(): destoryed(): 生命周期结束。

说到生命周期,必然会涉及到keep-alive 这里简单说明一下 。

keep-alive actived : 当路由组件被激活是触发。
deactivated : 当路由组件失活时触发。
errorCaptured : 再捕获一个来自子孙组件错误时被调用。
renderTracked : 调试钩子,响应式依赖收集时调用。
renderTriggered: 调试钩子,响应式依赖触发时调用。

TIP
因为 setup 是围绕 beforeCreate 和 created 生命周期钩子运行的,所以不需要显式地定义它们。换句话说,在这些钩子中编写的任何代码都应该直接在 setup 函数中编写。

setup执行顺序在beforeCreate()之前。