欢迎光临
个人技术文档整理

Vue:Vue生命周期钩子

Vue 生命周期钩子

Vue 生命周期钩子是指在 Vue 实例的生命周期中触发的回调函数。Vue 生命周期可以分为以下几个阶段:

  1. 创建阶段:在这个阶段,Vue 实例正在被创建,但是还没有完成初始化。在这个阶段,可以使用 beforeCreate 和 created 这两个生命周期钩子。
  2. 挂载阶段:在这个阶段,Vue 实例已经完成了初始化,但是还没有被挂载到页面上。在这个阶段,可以使用 beforeMount 和 mounted 这两个生命周期钩子。
  3. 更新阶段:在这个阶段,Vue 实例已经被挂载到页面上,当数据发生改变时,Vue 会自动更新页面。在这个阶段,可以使用 beforeUpdate 和 updated 这两个生命周期钩子。
  4. 销毁阶段:在这个阶段,Vue 实例被销毁。在这个阶段,可以使用 beforeDestroy 和 destroyed 这两个生命周期钩子。

beforeCreate 和 created

beforeCreate 生命周期钩子在 Vue 实例被创建之后立即调用,但是在实例初始化之前。在这个阶段,Vue 实例中的数据和方法都还没有被初始化。因此,在 beforeCreate 钩子中不能访问到数据和方法。

created 生命周期钩子在 Vue 实例创建完成之后立即调用,但是在模板渲染之前。在这个阶段,Vue 实例中的数据和方法已经被初始化。因此,在 created 钩子中可以访问到数据和方法。

beforeMount 和 mounted

beforeMount 生命周期钩子在 Vue 实例被挂载到页面之前调用。在这个阶段,Vue 实例已经完成了初始化,但是还没有被挂载到页面上。因此,在 beforeMount 钩子中可以访问到 Vue 实例中的数据和方法,但是无法访问到页面上的元素。

mounted 生命周期钩子在 Vue 实例被挂载到页面之后调用。在这个阶段,Vue 实例已经被挂载到页面上,可以访问到页面上的元素。因此,在 mounted 钩子中可以访问到 Vue 实例中的数据和方法,也可以访问到页面上的元素。

beforeUpdate 和 updated

beforeUpdate 生命周期钩子在 Vue 实例的响应式数据发生改变之前调用。在这个阶段,Vue 实例中的数据已经发生了改变,但是页面上的元素还没有被更新。因此,在 beforeUpdate 钩子中可以访问到 Vue 实例中的数据和方法,但是无法访问到页面上的元素。

updated 生命周期钩子在 Vue 实例的响应式数据发生改变之后调用。在这个阶段,Vue 实例中的数据已经发生了改变,并且页面上的元素也已经被更新。因此,在 updated 钩子中可以访问到 Vue 实例中的数据和方法,也可以访问到页面上的元素。

beforeDestroy 和 destroyed

beforeDestroy 生命周期钩子在 Vue 实例被销毁之前调用。在这个阶段,Vue 实例中的数据和方法还可以被访问。因此,在 beforeDestroy 钩子中可以执行一些清理工作,如取消订阅、清除定时器等。

destroyed 生命周期钩子在 Vue 实例被销毁之后调用。在这个阶段,Vue 实例中的数据和方法已经不可访问。因此,在 destroyed 钩子中不能访问 Vue 实例中的数据和方法,只能执行一些与 Vue 实例无关的清理工作。

总结

Vue 生命周期钩子是在 Vue 实例的生命周期中触发的回调函数,可以用于添加自定义逻辑。Vue 生命周期可以分为创建阶段、挂载阶段、更新阶段和销毁阶段。在每个阶段中,Vue 提供了不同的生命周期钩子,包括 beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy 和 destroyed。开发者可以根据自己的需求,在不同的生命周期阶段中添加自定义逻辑,实现更加灵活和高效的应用程序。

 

常用的生命周期钩子


a. mounted发送ajax请求、启动定时器、绑定自定义事件、订阅消息等初始化操作
b. beforeDestroy清除定时器、解绑自定义事件、取消订阅消息等收尾工作

关于销毁Vue实例
a. 销毁后借助Vue开发者工具看不到任何信息
b. 销毁后自定义事件会失效,但原生DOM事件依然有效
c. 一般不会在beforeDestroy操作数据,因为即便操作数据,也不会再触发更新流程了 

赞(1)