一般我们再设置404页面路由的时候是这样的:

{
path: "/404",
name: "notFound",
component: notFound
}, {
path: "*", // 此处需特别注意置于最底部
redirect: "/404"
}

但是如果你使用的是vue3的话,你会遇到这样的一个报错:

Catch all routes ("*") must now be defined using a param with a custom regexp.

这个报错翻译过来就是捕获所有路由(“*”)现在必须使用带有自定义regexp的参数定义

首先我们得知道在vue3中对404配置进行了修改,必须要使用正则匹配

那么这个时候我们就需要用到这两个属性值:

{
path:'/:pathMatch(.*)*'
}
{
path:'/:pathMatch(.*)'
}

官方是这样写的:

// plan on directly navigating to the not-found route using its name
  { path: '/:pathMatch(.*)*', name: 'not-found', component: NotFound },
  // if you omit the last `*`, the `/` character in params will be encoded when resolving or pushing
  { path: '/:pathMatch(.*)', name: 'bad-not-found', component: NotFound },

那么便知道了这两种写法的不同:

如果省略最后一个'*'在解析或推送时将对params中的'/'字符进行编码

Logo

前往低代码交流专区

更多推荐