现在页面上好多路由配置需要用id来区分不用数据页
所以问题就会出现:配的/:id路由会影响其他路由
就是例如我有一个 /tab的页面访问时会变成 /:id的页面
问题原因很简单就是路由匹配不严格导致的
举例下面两个路由
{
path: "/:id",
component: Home,
},
{
path: "/tab",
component: Tab
},
vue
其实用id来写,总给开发这一个错觉就是id就是int类型所以导致路由进来直接匹配 /:id 把所有以及路由都跳到这个路由上,所以把id正则一下数字,这样只能匹配为数字的以及路由,其他路由就可以正常配了,也不会乱入的情况
{
path: "/:id(\\d+)",
component: Home
},
{
path: "/", //默认路由
redirect: "/8"
}
如果配置路由/a/:id,如果想要没有id情况也能访问页面可以在路由上配置?来过滤
{
path: "/complaint/:id(\\d+)?",
component: Complaint
},
react
<Route path="/:id" component={SkuWeb} />
<Route path="/tab" component={Tab} />
<Redirect to="/8" />
这个也是id的问题,所以还是正则过滤,react有一个exact属性也可以加上,这样能更严格
<Route exact path="/:id(\d+)" component={SkuWeb} />
<Route path="/tab" component={Tab} />
<Redirect to="/8" />