页面一共为三页,A、B、C
A>B不缓存,C>B需要缓存
在网上查阅之后写了
在路由里面加上了
{
path: '/b',
name: 'B',
component: B,
meta:{
keepAlive:true
}
}
在app.vue写了
<keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>
A页面写了
beforeRouteLeave(to, from, next) {
to.meta.keepAlive = false;
next();
}
C页面写了
beforeRouteLeave(to, from, next) {
to.meta.keepAlive = true;
next();
}
然后存在问题
1.从A到B再到C,之后从C返回,B没被缓存
2.从B到A,之后到B,B没被缓存,表现正常,之后点击C,这个时候从C返回,得到的是一开始B的缓存
求大神看看是哪有问题,今天就处理这个问题了,但是现在还没什么头绪
别用v-if控制缓存不缓存了。。按官网上的方法:
cacheGroup是个数组,要缓存的组件的name放进这个数组就行,不想缓存就把它从数组移除