Subscribe on changes!

多个三级路由在用keep-alive包裹时,第二个打开的三级路由setup会触发多次,keepalive在三级路由中也存在问题

avatar
Jan 10th 2023

Vue version

3.2.45

Link to minimal reproduction

https://github.com/Miofly/vue-keep-alive-issue

Steps to reproduce

点击页面中第一个三级路由后,再点击第二个,会发现第二个三级路由 setup 中的 console 触发了两次

What is expected?

keepalive 正常 setup 不触发多次

What is actually happening?

yes

System Info

No response

Any additional comments?

No response

avatar
Jan 12th 2023

看起来像是 vuejs/routerrouter-view 组件的问题。

因为你在二级路由的地方使用了 keep-alive ,所以在切换路由的时候对应的二级路由组件没有被销毁。这些没有被销毁的组件在路径变更时还会被触发更新,所以就导致了该问题的出现。

希望你能在 vuejs/router 提一个 Issue 以帮助我们记录并解决这个问题(最好使用英文),非常感谢!