前端/移动开发面试题更新 2026-08-05

请解释 Vue 实例从创建到销毁会经历哪些阶段,并说明这些生命周期钩子在实际开发中分别承担什么职责?

前端/移动开发技术原理Vue

考察说明

考查对 Vue 组件生命周期阶段划分及各钩子典型用途的理解。

回答思路

  1. 【回答框架 1】Vue 生命周期指组件从创建、挂载、更新到销毁的完整过程,主要分为创建阶段、挂载阶段、更新阶段和销毁阶段。创建阶段包括 beforeCreate 和 created,此时数据观测和事件初始化完成,但 DOM 尚未生成。
  2. 【回答框架 2】挂载阶段包括 beforeMount 和 mounted,mounted 时组件已渲染到页面,可访问 DOM 或进行异步请求。更新阶段包括 beforeUpdate 和 updated,分别在数据变化前后触发,用于处理依赖更新后的逻辑。
  3. 【回答框架 3】销毁阶段包括 beforeDestroy 和 destroyed,用于清理定时器、解绑事件或取消订阅,避免内存泄漏。此外还有 activated 和 deactivated 用于 keep-alive 组件。
  4. 【回答框架 4】生命周期的主要作用是让开发者在特定时机插入自定义逻辑,例如在 created 中初始化数据、在 mounted 中操作 DOM、在 beforeDestroy 中释放资源,从而保证代码在正确的时机执行。
  5. 【回答框架 5】不同钩子的使用需注意顺序和依赖,例如异步请求通常放在 created 或 mounted,但 mounted 更保险,因为此时 DOM 已存在。避免在更新钩子中频繁修改数据导致死循环。
  6. 【关键点 1】生命周期分为创建、挂载、更新、销毁四个主要阶段,对应八个核心钩子。
  7. 【关键点 2】created 适合初始化数据,mounted 适合操作 DOM 和发起请求。
  8. 【关键点 3】beforeDestroy 中必须清理定时器和事件监听,防止内存泄漏。
  9. 【关键点 4】keep-alive 组件额外有 activated 和 deactivated 钩子。
  10. 【关键点 5】更新钩子中修改数据需谨慎,可能引发无限循环。
  11. 【易错点 1】混淆 created 和 mounted 的时机,created 时 DOM 尚未生成,无法操作 DOM。
  12. 【易错点 2】忘记在 beforeDestroy 中清理资源,导致组件销毁后定时器或事件仍存在。
  13. 【易错点 3】在 updated 中直接修改响应式数据,可能造成死循环。