vue动态缓存,keep-alive,vuex

文章介绍了在Vue项目中,如何利用keep-alive组件结合vuex来动态控制缓存的页面。通过设置组件的name属性,并在vuex中管理keepList,可以按需改变缓存的路由。当keepList中的页面将会被缓存,不在列表中的则不会。
摘要由CSDN通过智能技术生成

1、实现思路:

  • keep-alive include
  • 使用keep-alive包裹 router-view,动态改变 缓存的页面

注意:使用keep-alive缓存的vue页面,必须设置name,不设置name的话,使用include默认是缓存的

2、代码

2.1、keep-alive包裹, include过滤,keepList存在的界面进行缓存,不存在的不缓存

<keep-alive :include="keepList">
	<router-view></router-view>
</keep-alive>

<script>
import { mapGetters } from "vuex"

export default {
	data:...
	...
	computed: {
		...mapGetter(["keepList"])
	}
}
</script>

2.2、vuex存储keepList

common.js

const common = {
	state: {
		...
		keepList: ["login","index"]
	},
	mutations: {
		SET_KEEPLIST: (state, keepList) => {
			state.keepList = keepList
		}
	}
}

export default common;

getter.js

const getters = {
	keepList: (state) => state.common.keepList
}
export default getters

index.js

import Vue from "vue"
import Vuex from "vuex"
import common from "./modules/common"

Vue.use(Vuex);
const store = new Vuex.Store({
	modules: {
		common
	},
	getters
})

export default store;

2.3、改变keepList

根据自己需要的逻辑改变keepList
调用vuex方法赋值

...
let keepListTem = ['login']

this.$store.commit("SET_KEEPLIST",  keepListTem)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值