Vue 路由器别名优先级

Vue router alias priority

我在路由文件中设置了两条路由,如下所示:

{
    path: '/:language?/chain/:entity/',
    alias: '/:language?/:entity/',
    name: 'search',
    component: Search
}

因为 path 路由比别名更具体,我把它作为我的主要 path

这适用于:

/de/chain/mcdonalds/

但是对于这样的事情它不起作用:

/de/mcdonalds/

因为我的主要路径是 /:language?/chain/:entity/,所以它仍然会插入 chain 到我所有的 router-link 组件中。即使它不匹配确切的词。

我希望这条路线在匹配时优先。如果我交换它们,我将扭转我的整个情况。

我怎样才能让这两条路线正常工作?

遗憾的是,在 vue-router 支持 动态别名 之前,无法使用此功能。

您可能需要同时执行此操作

{
  path: '/:language?/chain/:entity/',
  name: 'search',
  component: Search
},
{
  path: '/:language?/:entity/',
  name: 'search',
  component: Search
}

这是功能请求的 Github link:https://github.com/vuejs/vue-router/issues/1858