由于目前 keep-alive 和 router-view 是强耦合的,而且查看文档和源码不难发现 keep-alive 的 include 默认是优先匹配组件的 name ,所以在编写路由 router 和路由对应的 view component 的时候一定要确保 两者的 name 是完全一致的。(切记 name 命名时候尽量保证唯一性 切记不要和某些组件的命名重复了,不然会递归引用最后内存溢出等问题)
话不多说,上代码!
首先找到 @/layout/components/AppMain.vue 然后移除 keep-alive
<!-- layout/components/AppMain.vue 文件 --><!-- 去掉:include="cachedViews" --><keep-alive :include="cachedViews"><router-view :key="key" /></keep-alive><!-- 改成如下 --><keep-alive><router-view :key="key" /></keep-alive>
如上,问题解决了,按文档来说,直接使用keep-alive也是有弊端的,但是问题不大,好歹解决问题了
参考官方文档:https://panjiachen.github.io/vue-element-admin-site/zh/guide/essentials/tags-view.html#visitedviews-cachedviews