此文章主要解决多路由指向同一组件时,keep-alive失效的问题!
在使用组件缓存keep-alive时,需要注意路由中name和组件中name是否一致的情况,一般keep-alive中存的是路由中的name,当重新点开路由时,当keep-alive中缓存的name和组件name不一样时,重新创建组件实例,如下
在这里插入图片描述上图为路由中的name
在这里插入图片描述上图为组件的name

以上两张图就是两个路由都引用同一个组件,此时keep-alive缓存失效,每次重新点击路由,都是重新创建组件实例,导致页面刷新,无法缓存组件。

想要解决此问题,在路由中使用重定向,能够解决不同路由指向同一组件,而且keep-alive能有效缓存组件,因为使用重定向后,keep-alive中存的路由name可以重复。具体解决方法如下:
在这里插入图片描述上图为路由中的重定向写法
在这里插入图片描述上图为组件的name
在这里插入图片描述上图为路由传参方式

此方法能有效解决,多路由指向同一组件,而且有效使用keep-alive缓存组件!

Logo

前往低代码交流专区

更多推荐