当前位置:首页 > VUE

要实现vue deactivated

2026-02-18 09:34:24VUE

Vue 中的 deactivated 生命周期钩子

deactivated 是 Vue 组件的一个生命周期钩子,属于 <keep-alive> 缓存组件的特有钩子。当组件被 <keep-alive> 包裹且从 DOM 中移除(但未销毁)时触发,通常与 activated 钩子配对使用。

使用场景

  • 组件被 <keep-alive> 缓存后切换出视图时触发。
  • 适合执行清理操作(如取消定时器、移除事件监听)或保存组件状态。

基本用法

在 Vue 组件中直接定义 deactivated 钩子:

要实现vue deactivated

export default {
  deactivated() {
    console.log('组件被停用,进入缓存状态');
    // 执行清理逻辑,如清除定时器
    clearInterval(this.timer);
  }
}

结合 <keep-alive> 使用

确保组件被 <keep-alive> 包裹才能触发此钩子:

要实现vue deactivated

<template>
  <keep-alive>
    <component :is="currentComponent" />
  </keep-alive>
</template>

activated 的配合

activated 在组件从缓存重新激活时触发,二者常配合使用:

export default {
  activated() {
    console.log('组件重新激活');
    this.timer = setInterval(() => {
      // 执行某些操作
    }, 1000);
  },
  deactivated() {
    console.log('组件停用');
    clearInterval(this.timer);
  }
}

注意事项

  • <keep-alive> 包裹的组件不会触发 deactivated
  • 组件首次加载时不会触发 deactivated,仅在后续切换时触发。
  • 销毁逻辑(如 beforeDestroy)仍需保留,因为 deactivated 不保证组件最终销毁。

实际应用示例

假设有一个需要保存滚动位置的列表组件:

export default {
  data() {
    return {
      scrollPosition: 0
    };
  },
  activated() {
    // 恢复滚动位置
    this.$el.scrollTop = this.scrollPosition;
  },
  deactivated() {
    // 保存滚动位置
    this.scrollPosition = this.$el.scrollTop;
  }
}

标签: vuedeactivated
分享给朋友:

相关文章

订单 vue实现

订单 vue实现

Vue 实现订单功能 数据模型设计 订单功能通常需要设计以下数据结构: // 订单数据结构 const order = { id: '', // 订单ID userId:…

vue手写签名如何实现

vue手写签名如何实现

实现手写签名的基本思路 在Vue中实现手写签名功能,通常需要借助HTML5的Canvas API来捕获用户的绘制操作。核心流程包括初始化画布、监听触摸/鼠标事件、记录轨迹以及生成签名图片。 安装依…

vue实现轮询

vue实现轮询

实现轮询的基本方法 在Vue中实现轮询可以通过setInterval或setTimeout配合递归调用完成。轮询通常用于定期向服务器请求数据更新。 使用setInterval的简单示例: da…

vue 实现级联

vue 实现级联

Vue 实现级联选择器 级联选择器(Cascader)常用于省市区选择、分类选择等场景。Vue 中可以通过 Element UI、Ant Design Vue 等 UI 库实现,也可以手动封装。…

vue实现grid

vue实现grid

Vue 实现 Grid 布局的方法 使用 CSS Grid 布局 Vue 可以结合 CSS Grid 布局实现灵活的网格系统。CSS Grid 是现代浏览器原生支持的布局方案,无需额外依赖库。 &…

vue能实现

vue能实现

Vue.js 是一个流行的前端框架,能够实现多种功能。以下是 Vue 能够实现的主要功能和特性: 响应式数据绑定 Vue 的核心特性之一是响应式数据绑定。通过数据驱动视图,当数据发生变化时,视图会自…