Vue生命周期

Vue 生命周期就是Vue 实例从创建 → 挂载 → 更新 → 销毁的整个过程,官方提供了 8 个生命周期钩子函数,让你能在不同阶段执行自己的代码。


一、8 个生命周期钩子(按执行顺序)

  1. beforeCreate
  2. created
  3. beforeMount
  4. mounted
  5. beforeUpdate
  6. updated
  7. beforeDestroy
  8. destroyed

二、逐阶段解释(最实用)

1. 创建阶段(组件刚出生)

beforeCreate
  • 实例刚被创建
  • data、methods 还不能用
  • 几乎不用
created
  • data、methods 已经可以使用
  • DOM 还没生成
  • ✅ 常用:发送异步请求、获取初始数据

2. 挂载阶段(渲染到页面)

beforeMount
  • 模板编译完成
  • 还没挂载到页面
  • 几乎不用
mounted
  • 组件已经挂载到页面,DOM 生成完成
  • ✅ 最常用:操作 DOM、初始化插件、定时器、事件监听

3. 更新阶段(数据改变时)

beforeUpdate
  • 数据已经改变
  • DOM 还没重新渲染
updated
  • 数据 + DOM 都已更新完成
  • 可获取最新 DOM

4. 销毁阶段(组件消失)

beforeDestroy
  • 组件即将销毁
  • 实例还能用
  • ✅ 常用:清除定时器、移除事件监听、防止内存泄漏
destroyed
  • 组件完全销毁
  • 所有绑定失效
  • 一般不用

三、最常用的 3 个(90% 场景用这三个)

  1. created:拿数据
  2. mounted:操作 DOM
  3. beforeDestroy:清理定时器 / 监听

四、Vue2 代码示例(直接复制可用)

vue

复制代码
export default {
  data() {
    return {
      msg: "hello"
    }
  },
  
  // 1. 创建
  beforeCreate() {},
  created() {
    // 发请求拿数据 ✅
  },

  // 2. 挂载
  beforeMount() {},
  mounted() {
    // 操作DOM、初始化插件 ✅
  },

  // 3. 更新
  beforeUpdate() {},
  updated() {},

  // 4. 销毁
  beforeDestroy() {
    // 清除定时器、移除监听 ✅
  },
  destroyed() {}
}

五、Vue3 组合式 API(setup)

Vue3 setup 内部没有生命周期,需要用钩子函数:

js

复制代码
import { onMounted, onUpdated, onUnmounted } from 'vue'

setup() {
  onMounted(() => {
    // 相当于 mounted
  })
  
  onUnmounted(() => {
    // 相当于 beforeDestroy
  })
}

总结

  • 生命周期 = 组件从生到死的过程
  • 8 个钩子,记住 created、mounted、beforeDestroy 就够用
  • 作用:在合适的时机做合适的事(拿数据、操作 DOM、清理资源)
相关推荐
张元清16 分钟前
React useResizeObserver Hook:追踪元素尺寸变化(2026)
javascript·react.js
赵庆明老师1 小时前
Vben精讲:16-熟悉Vite前端工具链
前端
瑞瑞小同学3 小时前
处理echarts x轴内容过多,重叠问题
前端·javascript·echarts
HexCIer3 小时前
面向未来的原子化 CSS:UnoCSS 核心架构分析与 Tailwind CSS 现状
前端·css·vite
程序员黑豆3 小时前
鸿蒙应用开发中的单位详解:px、vp、fp、lpx
前端·harmonyos
像我这样帅的人丶你还4 小时前
MCP + npm:给五年前的老系统接上AI
前端·javascript·agent
南一Nanyi4 小时前
依赖注入和控制反转
前端·设计模式·nestjs
小村儿4 小时前
连载14-实战篇--一个半月,我一个人和 Claude Code 搭出一套数字人工程
前端·后端·ai编程
愚公移码4 小时前
蓝凌EKP18产品:流程虚拟机(PVM)
java·开发语言·前端
promiseThen4 小时前
5 分钟上手 Markdown:标题到表格、代码块与简历实战
前端