当前位置:首页 > VUE

vue生命周期实现

2026-01-23 10:01:35VUE

Vue 生命周期实现

Vue 的生命周期钩子是框架在组件创建、更新、销毁过程中自动调用的函数,开发者可以通过这些钩子在不同阶段执行自定义逻辑。以下是 Vue 生命周期的主要阶段及其实现方式:

生命周期钩子分类

  1. 创建阶段

    vue生命周期实现

    • beforeCreate:实例初始化后,数据观测和事件配置之前调用。此时 datamethods 未初始化。
    • created:实例创建完成,数据观测和事件配置已完成。可以访问 datamethods,但 DOM 未挂载。
  2. 挂载阶段

    • beforeMount:模板编译完成,但尚未将 DOM 挂载到页面。
    • mounted:DOM 挂载完成,可以操作 DOM 或发起异步请求。
  3. 更新阶段

    vue生命周期实现

    • beforeUpdate:数据变化后,DOM 更新前触发。
    • updated:DOM 更新完成后触发。
  4. 销毁阶段

    • beforeDestroy:实例销毁前调用,适合清理定时器或解绑事件。
    • destroyed:实例销毁后调用,所有子实例也会被销毁。

代码示例

export default {
  data() {
    return { message: 'Hello Vue!' };
  },
  beforeCreate() {
    console.log('beforeCreate: 数据未初始化');
  },
  created() {
    console.log('created: 数据已初始化', this.message);
  },
  beforeMount() {
    console.log('beforeMount: DOM 未挂载');
  },
  mounted() {
    console.log('mounted: DOM 已挂载');
  },
  beforeUpdate() {
    console.log('beforeUpdate: 数据更新前');
  },
  updated() {
    console.log('updated: DOM 更新后');
  },
  beforeDestroy() {
    console.log('beforeDestroy: 实例销毁前');
  },
  destroyed() {
    console.log('destroyed: 实例销毁后');
  }
};

注意事项

  • 避免在 beforeCreate 中访问 datamethods,此时它们尚未初始化。
  • mounted 不保证所有子组件都已挂载,如需等待子组件完成,可使用 this.$nextTick
  • beforeDestroy 中清理定时器、事件监听等资源,防止内存泄漏。

组合式 API 中的生命周期

在 Vue 3 的组合式 API 中,生命周期钩子以函数形式调用,名称略有变化(如 onMounted):

import { onMounted, onUpdated } from 'vue';

export default {
  setup() {
    onMounted(() => {
      console.log('组合式 API 的 mounted');
    });
    onUpdated(() => {
      console.log('组合式 API 的 updated');
    });
  }
};

标签: 生命周期vue
分享给朋友:

相关文章

vue的实现原理

vue的实现原理

Vue 的实现原理 Vue 是一个渐进式 JavaScript 框架,其核心实现原理主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。 响应式系统 Vue 使用 Object.defineP…

vue实现静态查询

vue实现静态查询

Vue 实现静态查询 在 Vue 中实现静态查询通常指不依赖后端接口,直接在前端处理数据筛选或搜索功能。以下是几种常见实现方式: 使用计算属性过滤数据 通过计算属性对静态数据进行筛选,适合简单查询…

vue怎么实现页面返回

vue怎么实现页面返回

Vue 实现页面返回的方法 在 Vue 中实现页面返回功能,可以通过以下几种方式完成,具体取决于项目使用的路由模式和技术栈。 使用 Vue Router 的编程式导航 通过 this.$route…

vue如何实现到期提醒

vue如何实现到期提醒

实现 Vue 到期提醒功能 使用计算属性计算剩余时间 在 Vue 组件中定义一个计算属性,计算目标日期与当前日期的差值。通过 Date 对象获取时间戳并计算剩余天数或小时数。 computed: {…

vue前端分页怎么实现

vue前端分页怎么实现

前端分页实现方法 在Vue中实现前端分页通常涉及数据分割和页面控制逻辑。以下是常见的实现方式: 使用计算属性分页 通过计算属性对数据进行切片处理: computed: { paginate…

vue实现飘窗原理

vue实现飘窗原理

vue实现飘窗原理 飘窗效果通常指在页面上悬浮显示的弹窗或通知,跟随页面滚动或固定在某个位置。Vue实现这一效果主要依赖组件化开发、CSS定位和动态数据绑定。 组件结构设计 创建一个独立的Vue组件…