请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于 [Vue Router warn]: No match found for location with path 的解决方法

问题描述

通过点击菜单访问我们动态添加的路由是没有问题的
如果是强制刷新浏览器,此时,控制台会友好的提示:
[Vue Router warn]: No match found for location with path ‘xxx’ 的警告

分析

我在排除其他可能导致这种错误后,最终将问题定位到添加的 router.beforeEach 路由守卫上。这是因为强制浏览器刷新,路由又访问的是动态添加的路由,此时,进入路由守卫后未找到对应的路由记录所导致的

// 强制浏览器刷新,访问动态路由(/user/manage),进入路由守卫,
router.beforeEach((to) => {
  console.log(to.matched) 
  // 动态路由表还未添加,匹配到的是 [] 的路由记录,控制台提示警告,当后继添加完动态路由后正常显示路由视图组件
  ...
}

解决

只需要在公有的路由表最后添加段代码即可
找到路由配置文件,我的路径是src/router/index.js

const publicRoutes = [
	...
	{
	    path: '/:pathMatch(.*)*',
	    component: () => import('@/views/error-page/404')
	}
]

正在回答 回答被采纳积分+3

0回答

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号