【问题标题】:Vue router alias priorityVue路由器别名优先级
【发布时间】:2018-06-28 11:09:37
【问题描述】:

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

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

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

这适用于:

/de/chain/mcdonalds/

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

/de/mcdonalds/

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

如果匹配,我希望该路由优先。如果我交换它们,我将扭转我的整个情况。

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

【问题讨论】:

  • 为什么你想让一些<router-link>s 有/chain/ 而一些没有?有一个一致的 URL 不是更好吗?
  • 这样会更好,但不幸的是这不取决于我。我不知道为什么此时我什至会问这个问题,因为这似乎是无法在这里解释的情况之一。无论如何,感谢您的关注。
  • 我不太明白这个问题。您的问题是<router-link to="/de/mcdonalds/"> 呈现带有href /de/chain/mcdonalds/ 的链接吗?您是说要计算的 href 匹配 to 中的路径吗?

标签: vue.js vuejs2 vue-router


【解决方案1】:

很遗憾,在vue-router 支持动态别名之前,此功能是不可能的。

在此期间您可能需要这样做

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

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

【讨论】:

  • 这很不幸,因为这正是我所需要的。感谢您的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 2020-09-13
  • 1970-01-01
  • 2016-08-04
  • 1970-01-01
  • 2013-11-02
  • 1970-01-01
相关资源
最近更新 更多