当前位置:首页 > 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 组件循环的实现方法 在 Vue 中实现组件循环通常使用 v-for 指令,可以循环渲染数组或对象的数据到组件上。 基本数组循环 通过 v-for 指令遍历数组,渲染多个相同结构的组件。…

vue实现表格多行修改

vue实现表格多行修改

实现多行编辑表格 在Vue中实现表格的多行编辑功能,可以通过以下方法完成。这里以Element UI的表格组件为例,但思路适用于其他UI库或原生实现。 数据准备 定义表格数据和编辑状态管理变量:…

vue中如何实现循环

vue中如何实现循环

在 Vue 中实现循环 Vue 提供了 v-for 指令用于实现循环渲染列表数据。v-for 可以遍历数组、对象或数字范围,生成动态的 DOM 元素。 遍历数组 使用 v-for 遍历数组时,语法…

vue实现点击旋转轮盘

vue实现点击旋转轮盘

实现点击旋转轮盘效果 在Vue中实现点击旋转轮盘效果,可以通过CSS动画和Vue的数据绑定结合完成。以下是一个完整的实现方案: 准备工作 需要安装Vue.js环境,可以通过CDN引入或使用Vue…

vue实现菜单栏锚点

vue实现菜单栏锚点

实现锚点菜单的基本思路 在Vue中实现菜单栏锚点功能,主要涉及两个方面:创建可跳转的锚点位置,以及菜单项的点击滚动控制。通过监听滚动事件可以高亮当前可见区域的对应菜单项。 创建页面锚点位置 在需要跳…

vue实现生成二维码

vue实现生成二维码

使用qrcode.vue库生成二维码 安装qrcode.vue库: npm install qrcode.vue --save 在Vue组件中使用: <template> <…