vue-router.js?v=408f3477:974 Uncaught Error: Catch all routes (“*“) must now be defined using a para

这个错误提示来自于 Vue Router 的一个更新,特别是从 Vue Router 3 到 Vue Router 4(通常与 Vue 3 一起使用)的迁移过程中。在 Vue Router 4 中,全局捕获(或称为“通配符”路由)的定义方式发生了改变。在 Vue Router 3 中,你可能会使用 * 作为路径来定义一个捕获所有不匹配其他路由的路由,但在 Vue Router 4 中,这种方式已经被移除。

解决方案

在 Vue Router 4 中,如果你想要定义一个通配符路由,你需要使用带有自定义正则表达式的参数。这里是一个如何做到这一点的例子:

import { createRouter, createWebHistory } from 'vue-router';  
  
const routes = [  
  // 其他路由定义...  
  {  
   path: '/:catchAll(.*)',  
   name: 'NotFound',  
   component: () => import('./views/NotFound.vue')  
  }
];  
  
const router = createRouter({  
  history: createWebHistory(process.env.BASE_URL),  
  routes  
});  
  
export default router;

当所有路由都不匹配时弹出404页面

    {  
       path: '/:pathMatch(.*)',  
       name: 'NotFound',  
       component: () => import('../views/NotFind.vue')  
    },

    // {  
      //  path: '/:catchAll(.*)',  
      //  name: 'NotFound',  
      //  component: () => import('../views/NotFind.vue')  
    // },

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值