关于vue的多路由指向同一组件时,keep-alive失效的问题
此文章主要解决多路由指向同一组件时,keep-alive失效的问题!在使用组件缓存keep-alive时,需要注意路由中name和组件中name是否一致的情况,一般keep-alive中存的是路由中的name,当重新点开路由时,当keep-alive中缓存的name和组件name不一样时,重新创建组件实例,如下上图为路由中的name上图为组件的name以上两张图就是两个路由都引用同一个组件...
·
此文章主要解决多路由指向同一组件时,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缓存组件!
更多推荐
已为社区贡献1条内容
所有评论(0)