Vue动态改变keepAlive缓存

本文介绍了在Vue项目中动态改变组件缓存的需求。通过keep-alive组件,结合Vuex状态管理,实现了根据路由变化动态决定组件B是否被缓存。在App.vue中监听缓存数组,Vuex中提供缓存控制方法,B.vue根据to组件判断是否缓存,同时利用全局导航守卫确保从C到B时保持缓存状态。
摘要由CSDN通过智能技术生成
功能需求:
  • 大家都知道keep-alive组件的作用,在实际开发过程中,经常会遇到对部分组件进行缓存,常用操作方法见另一篇博客
    对指定组件进行keep-alive缓存
  • 然而,组件切换时还存在另一种需求:A>B不缓存,C>B缓存;也就是组件B是需要动态改变是否进行缓存的。

作为一个懒癌 + 菜鸡,我只想使用最简单易懂的方式实现(以下为关键代码)

  1. App.vue文件 (监听缓存数组的变化)

    	<keep-alive :include="cached">
          <router-view />
        </keep-alive>
    
    	export default {
         
    		data() {
         
        		return {
         
          			cached: this.$store.state.catchArr
    		    };
    		},
    		watch: {
         
    		    $route: {
         
    		      //监听路由变化
    		      handler: function(to, from) {
         
    		        this.cached = this.$store.state.catchArr;
    		      }
    		   }
    		}
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值