详解vue-template-admin三级路由无法缓存的解决方案
在src/layout/AppMain组件:keep-alive的组件依赖cachedViews,cachedViews是store中的一个状态,cachedViews的逻辑在src/layout/TagView当路由变更时就会调用addViewTags,addViewTag会根据匹配的路由name属性进行缓存。而用到三级路由的时候,拿到name只能时第三级路由的name,二级路由组件的名字会丢失,keep-alive就不会进行缓存。但是生成菜单的时候是用router表的,那么生成菜单的用原本的,生成路由的时候用替换的。下面是demo代码:将要被替换的路由加上noCompoent属性。上面那个方案也只是针对二级路由组件不需要显示出来,那么可以放到一级路由的children里面,但是如果是有需要的话,还是使用vuex来存储数据比较好。
用户评论