KeepAlive 简单使用,及手动去除内容存储

项目需求:使用keep-alive 实现项目中部分页面的存储功能,当关闭页面需求清除掉缓存,tab切换页面时需要保留内容进行缓存;

问题:关闭后,重新打开页面,内容仍然存在,需要强制清除keep-alive 保留的缓存内容;

效果如下:

实过程及思路:部分代码

1、keep-alive 使用保留缓存实现:

router配置:

或者 

    <keep-alive>
      <router-view v-if="$route.meta.keepalive" :key="key" />
    </keep-alive>
    <router-view v-if="!$route.meta.keepalive" :key="key" />

关闭菜单操作:

pageDelete(id, tag) {
  this.$store.commit('tagBar/tagDelete', id)
}

store 存储设置:

在需要的页面中处理设置;

//从store 去除删除的内容标识;
import { mapGetters } from 'vuex'
computed: {
    ...mapGetters(['closeTagName'])
  },

/******** 其他内容略过 ********/

// 路由离开,处理需要销毁的内容
beforeRouteLeave(to, from, next) {
    if (this.closeTagName === '添加客户') {
      this.$router.history.current.meta.keepalive = false
      // 设置下一个路由的 meta
      to.meta.keepAlive = false // 不缓存
      this.$store.commit('tagBar/setCloseTagName')
    } else {
      this.$router.history.current.meta.keepalive = true
      // 设置下一个路由的 meta
      to.meta.keepAlive = true // 不缓存
    }
    next()
  }

以上内容仅供参考;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值