Vue 跳转路由前,如何判断跳转的path存在于当前项目的路由表里面?

如标题

我想要做个操作,跳转路由前判断下是否存在于当前项目的路由表里面,存在则直接跳转,不存在则跳转到目前已存在路由表的第一个页面(不包括login和404页面)

当前项目的路由表里存在嵌套路由和类似 /jurisdiction/edit/:id 这样带参数的路由

我现在研究的步骤已经到了,递归遍历路由表取出了所有路由的path了,如:

[ "/", "/login", "/404", "/jurisdiction", "/jurisdiction/account", "/jurisdiction/edit/:id", "*" ]

本来想直接用数组的 findIndex 方法来遍历查找的

但是对于 /jurisdiction/edit/:id id值动态变化的

跳转的路由可能是 /jurisdiction/edit/123,也可能是 /jurisdiction/edit/55不知道如何判断

阅读 3.3k
1 个回答

自己已解决,在路由表的最后加这一段代码就行

{ path: '*', redirect: to => {
    console.log('未找到相关路由,默认跳转到第一个路由页面')
    return <第一个路由页面的路径>
  }, hidden: true }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题