当前位置:首页 > VUE

要实现vue deactivated

2026-01-17 17:07:02VUE

Vue 组件的 deactivated 生命周期钩子

在 Vue.js 中,deactivated<keep-alive> 缓存组件特有的生命周期钩子。当组件被 <keep-alive> 包裹并从 DOM 中移除(但未被销毁)时触发,通常发生在路由切换或动态组件切换时。

基本用法

组件需被 <keep-alive> 包裹才能触发 deactivated

要实现vue deactivated

<template>
  <keep-alive>
    <my-component v-if="showComponent" />
  </keep-alive>
</template>

在组件中定义钩子:

要实现vue deactivated

export default {
  deactivated() {
    console.log('组件被停用');
    // 可在此执行清理操作,如暂停定时器、取消事件监听等
  }
}

典型使用场景

清理资源

deactivated() {
  clearInterval(this.timer); // 清除定时器
  window.removeEventListener('resize', this.handleResize); // 移除事件监听
}

保存组件状态

data() {
  return {
    scrollPosition: 0
  };
},
deactivated() {
  this.scrollPosition = window.scrollY; // 保存滚动位置
},
activated() {
  window.scrollTo(0, this.scrollPosition); // 恢复滚动位置
}

注意事项

  • deactivated 需与 activated 配对使用,前者在离开缓存时触发,后者在重新进入缓存时触发
  • 未被 <keep-alive> 包裹的组件不会触发这两个钩子
  • destroyed 不同,deactivated 时组件实例仍被保留,数据不会丢失

标签: vuedeactivated
分享给朋友:

相关文章

vue前端实现登录

vue前端实现登录

实现登录功能的基本流程 使用Vue实现登录功能需要结合前端框架和后端API交互。以下是一个典型的实现方案: 安装必要依赖 确保项目已安装axios用于HTTP请求: npm install axi…

vue手动实现弹窗

vue手动实现弹窗

实现弹窗组件的基本结构 在Vue中手动实现弹窗组件,需要创建一个独立的弹窗组件,并通过props控制其显示与隐藏。弹窗组件通常包含遮罩层、内容区域和关闭按钮。 <template>…

vue实现长按

vue实现长按

Vue 实现长按功能的方法 在 Vue 中实现长按功能可以通过原生事件监听或自定义指令完成。以下是几种常见实现方式: 使用原生事件监听 通过 @mousedown 和 @mouseup 或 @tou…

vue 实现筛选

vue 实现筛选

实现筛选功能的基本方法 在Vue中实现筛选功能通常涉及以下几个核心步骤: 数据绑定与筛选逻辑 使用v-model绑定筛选条件到Vue实例的数据属性,结合计算属性实现动态筛选: data() {…

mui实现vue

mui实现vue

mui 实现 Vue 的步骤 mui 是一个轻量级的前端框架,常用于移动端开发。结合 Vue 可以实现高效的开发体验。以下是具体实现方法。 安装 mui 和 Vue 通过 npm 或 yarn 安装…

vue router实现分页

vue router实现分页

Vue Router 实现分页的方法 在 Vue.js 中,可以通过 Vue Router 实现分页功能,通常需要结合路由参数和动态路由匹配。以下是几种常见的实现方式: 使用查询参数实现分页 在路由…