关于keepalive,切换到未缓存的路由,为什么已经缓存的页面会重新触发

结构目录如下

app.vue有两个子路由分别为

task.vue和query.vue

这两个子路由下还有两个子路由分别为

task1,task2,quey1,query2

除了query2路由元属性没有设置keepalive为true

如图所示

其他路由都设置了keepalive

 

task和query的index.vue如图所示

问题是:我来回切换路由,当从/task/task1切换到/query/query1因为keepalive缓存,所以二者生命周期都不会重新加载,当从/query/query1切换到/query/query2时,query2因为没有被缓存,所以开始加载,但是此时之前的task/task1页面的生命周期却重新运行了,想问下这是为什么原因???我明明对task1已经设置了缓存。

可以用meta来控制是否缓存 https://juejin.cn/post/6844903918313406472 或者新加得include 和exclude

对 我也遇到这个困难了 同一级的路由切换都好用 必入task/task1切换到query/query1/然后回到task1看 task1没有缓存了 楼主解决了吗

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632