vue-router4.0动态路由失效问题
问题描述:vue-router4.0 版本在beforeEach使用addRouter动态添加路由后,路由没有生效。控制台发出警告[Vue Router warn]: No match found for location with path "/home",使用roter.getRoutes()查看已经挂载的路有也已经挂载上去解决方法:查看官网,官网在addRoute 方法下有一条提示:请注意,
问题描述:
vue-router4.0 版本在beforeEach使用addRouter动态添加路由后,路由没有生效。控制台发出警告[Vue Router warn]: No match found for location with path "/home",使用roter.getRoutes()查看已经挂载的路有也已经挂载上去
解决方法:
查看官网,官网在addRoute 方法下有一条提示:
请注意,添加路由并不会触发新的导航。也就是说,除非触发新的导航,否则不会显示所添加的路由。
这句话说明了,如果当前访问的地址和动态添加的路由地址是一致的,不会触发新的导航。
vue-router4.x官网-动态路由也对这个问题进行了阐述说明:动态路由主要通过两个函数实现。router.addRoute()
和 router.removeRoute()
。它们只注册一个新的路由,也就是说,如果新增加的路由与当前位置相匹配,就需要你用 router.push()
或 router.replace()
来手动导航,才能显示该新路由。
官网给出了解决方案, 在动态添加路由之后且添加的动态路由地址和当前访问的地址一致,使用router.push() 或router.reolace() 手动导航。
更多推荐
所有评论(0)