【发布时间】:2019-09-30 08:50:59
【问题描述】:
我想知道 Vue Router 是否可以根据 URL 中传递的参数显示不同的布局?
考虑以下网址:
- /admin/forms/待处理
- /admin/forms/approved
- /admin/forms/拒绝
- /admin/forms/categories
前 3 个链接与某些表单对象的状态有关,并将使用挂起/批准/拒绝状态将参数作为状态过滤器传递给表单 API。但是,对于类别,我希望它显示一个列出所有类别的视图。
我知道这可以通过使用两个不同的路由对象来实现——一个匹配/admin/forms/categories,一个匹配/admin/form/:status,但我想知道是否可以将两者结合起来,或者有一种方法来创建两条路线,因此我定义它们的顺序无关紧要(例如,如果我将类别路线放在状态路线下方,那么类别视图将不会显示)。为此,我认为 (/admin/forms/(:status(?!categories)) 之类的东西会起作用,但我从 Vue Router 收到“没有重复”的错误。
这是可以在 Vue Router 中实现的吗?我更乐意继续定义这两条不同的路线,只是想知道是否有更有效的方法来做到这一点?
谢谢!
=====
更新:不要问我为什么,但我在这里引用了 Vuex,而它应该是 Vue Router,d'oh
【问题讨论】:
-
对我来说,理解你想要什么有点困难。如果您给出一些与您想要的匹配的 URL 示例,以及一些不匹配的 URL 示例,将会更清楚。另外,我想知道冒号
:是从哪里出现的。 -
嗨@virolino,感谢您的回复基本上,我有一个场景,其中有 2 个匹配的 URL 模式,但我希望它们与 2 个不同的视图相关 - 例如,如果有人去
/admin/forms/pending,它需要显示状态为待处理的表单,但是如果它们转到/admin/forms/categories,它需要列出与表单分开的表单类别。我只是想看看是否有办法在一个规则中做到这一点,而不是有 2 个。我希望这有助于解决问题?
标签: regex vue.js vue-router