首页 新闻 会员 周边 捐助

Vue3中如何手动销毁keepalive缓存的组件

0
悬赏园豆:10 [已解决问题] 解决于 2022-05-19 14:17

如题,我们使用了keepalive缓存了组件,并通过tags做了标签展示。现想要在关闭标签的时候,同时把缓存的组件页一并销毁,以便于从菜单栏里再次打开做到重新加载。

Corwit的主页 Corwit | 初学一级 | 园豆:193
提问于:2022-05-17 16:18
< >
分享
最佳答案
0

提供一个思路:
试试include,定义一个全局的数组list用来存这个值(可以使用vuex),如 :include="list"。
每次打开一个标签时,这个list数组push进去一个name(就是路由的name,需要注意每个路由都要有name),
每次关闭一个标签时,把list中被关闭的那个name删掉。
通过这种方式应该就可以动态的指定哪些页面需要缓存,哪些不需要缓存,实现关闭一个标签后清除对应页面缓存的效果。

收获园豆:10
顾星河 | 大侠五级 |园豆:7281 | 2022-05-17 16:37

这个方法可以!目前遇到新的问题,incude需要存放的是组件的名字,路由名字不行。且我使用了setup的语法糖,我现在需要给每个页面都加一行额外的script来export name,这个有其他好的方式吗?

Corwit | 园豆:193 (初学一级) | 2022-05-19 14:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册