问题产生:项目是用的bladex的平台,前端部分是saber2,saber2菜单管理中没有页面缓存的功能
感谢这位博主的文章:https://blog.csdn.net/u014285237/article/details/116758909
解决:页面组件中使用keep-alive来缓存
这样设置后,所有页面都会被缓存。如果要想某个页面不缓存,则在某个页面中添加这行代码:
created(){ this.$route.meta.$keepAlive = false; }
问题产生2:从导航栏进入的页面也会被缓存,不会重新加载。
解决2:在组件上绑定key值,通过刷新key,来实现重新加载。
1.vuex中定义字段
2.导航栏组件事件中刷新key
3.页面组件中绑定key
<div style="height:100%;" id="avue-view" v-show="!isSearch" :key="refreshPage">
<keep-alive >
<router-view class="avue-view" v-if="$route.meta.keepAlive || $route.meta.keepAlive===undefined"/>
</keep-alive>
<router-view class="avue-view" v-if="!$route.meta.keepAlive && $route.meta.keepAlive!==undefined"/>
</div>