vue-element-admin icon indicating copy to clipboard operation
vue-element-admin copied to clipboard

使用keep-alive缓存时,会出现菜单串台的BUG

Open FrontEnd-GuoXi opened this issue 3 years ago • 3 comments

我的菜单只有两级,我把所有的二级菜单都缓存了,但是我发现有时候点击菜单的时候,组件会错位。

Steps to reproduce:比如我先点开一级菜单A下的二级菜单B,然后再去点开一级菜单C下的二级菜单D,再点开一级菜单A下的E菜单,发现E打开的页面居然是B菜单对应的组件,此时再去点其他的是正常的,这个BUG只有按这种顺序点就会出现。

Other relevant information:我菜单和路由一这块代码,除了路由是后端数据生成的,主要逻辑基本没有改,但是我看了下作者自己开源的DEMO,二级菜单是可以正常缓存的,没有我这个BUG,所以我想不明白问题在哪里。

FrontEnd-GuoXi avatar May 28 '21 13:05 FrontEnd-GuoXi

我尝试把appMain.vue中keep-alive的include属性去掉,发现点击同一父菜单下的子菜单是可以换缓存的,但是不同的父菜单下的子菜单切换就会缓存失效的情况。

FrontEnd-GuoXi avatar May 29 '21 03:05 FrontEnd-GuoXi

忘记说了,出现串台的BUG和我在app.vue下加了一个kepp-alive有关,但是后面我去掉了,去掉发现layout这个组件不能被缓存,每次切换不同的一级菜单的时候,这个组件都会重新实例化,导致下面的子组件也无法缓存。所以只能点击同一个父级菜单下的子菜单才有缓存效果。

FrontEnd-GuoXi avatar May 29 '21 03:05 FrontEnd-GuoXi

你这个问题最后怎么解决的?

fanaoxue avatar Jul 20 '22 01:07 fanaoxue