关于vue-router定义同名路由动态路由会截胡后面写的静态路由解决办法

本文介绍了在Vue Router中遇到的同名路由静态与动态路径冲突问题,即静态路由被动态路由截胡的情况。解决方法包括调整路由定义顺序和使用正则表达式限制动态路由匹配。通过在动态路由内添加正则验证,可以精确控制路由匹配,避免冲突。同时讨论了两种解决方案的适用性和优缺点。
摘要由CSDN通过智能技术生成

路由路径中有两个同名路径,一个为动态一个为静态时会出现截胡问题,下面用图片来形象描述一下这个问题

静态路由放动态路由前

vue-router下index.js定义的路由规则
router下index.js配置路由规则在这里插入图片描述
在这里插入图片描述
上面代码最终会展现出以下形式
在这里插入图片描述在这里插入图片描述

这种方式将静态路由写在动态路由前页面可以正常显示,当将静态路由和动态路由调换位置,如下图
在这里插入图片描述
最终代码表现形式
在这里插入图片描述
在这里插入图片描述
这时发现不管是动态路由还是静态路由都是一个页面,因为动态路由这种写法 :id 随机匹配可以写成任意值,而静态路由写的是写死的路径,规则匹配验证时因为 :id 可以为任意值,所以从声明规则的先后顺序进行规则的匹配理所当然动态路由就将后面的同名路由下的静态路由截胡了,那怎么避免呢,把静态的同名路由放到动态路由不失是一种结局办法,但是不够严谨,所以荡了一遍vue的官网后找到了解决方案,在vue匹配路径中可以使用正则表达式。vue在参数中自定义正则在这里插入图片描述
在这里插入图片描述
总结一下:解决同名静态路由被动态路由所截胡问题

  1. 方法一:将同名静态路由放在同名静态路由之前,路由规则匹配时会按照路由规则定义的先后顺序进行验证(不推荐)
  2. 方法二:在动态路由内加上正则验证,用正则表达式来规定动态路由的类型

望能解决你我共同遇到的问题,加油CV攻城狮

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值