keep-alive缓存某一指定路由实现方式
作者:Jedi Hongbin
使用路由元信息配合keep-alive实现条件缓存,通过两个router-view和meta变量判断是否缓存特定路由,注意keep-alive优先使用组件的name属性而非路由name,避免常见错误
keep-alive缓存某一指定路由
路由的元信息,可以理解成保存某一路由的特定辨识信息,当辨识信息对上了某些判断,则执行某些操作
正常显示的路由不使用keep-alive缓存
但是某一特定需要使用keep-alive保存操作记录,就可以使用两个router-view,通过判断当前路由的meta信息中的变量的值来决定时候使用keep-alive
<transition> <router-view v-if="!$route.meta.isKeep"></router-view> </transition> <transition> <keep-alive> <router-view v-if="$route.meta.isKeep"></router-view> </keep-alive> </transition>
{
path: "/home/goods",
component: goods,
meta: {
isKeep: true//需要缓存的路由
}
}, {
path: "/home/goodsinfo/:id",
component: goodsInfo
},
keep-alive本身还有辨识路由的方式

还可以用keep-alive提供的三个属性来实现
让keep-alive根据条件来判断是否缓存某一路由,不过keep-alive判断的首先是vue实例的name属性,这里要注意不是路由的name属性,这时一个坑🕳
<transition> <keep-alive exclude="goods"> <router-view></router-view> </keep-alive> </transition>
export default {
name:"goods",
data() {
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
