显示嵌套URL在vue-router中是活动的,当它不是子视图时



我有一个带有"Projects"选项。在我的vue-router中,我定义了以下路由:

/projects
/projects/:project_id

对于/project,这将加载所有项目的列表,而/projects/:project_id应该仅显示单个项目的详细信息。在每种情况下,UI都填充了空间,它们之间没有共享的行为/模板。

我想要"项目"选项显示为活动状态,即使用户处于/projects/:project_id

我在这里有什么选择?我避免嵌套子视图,因为我不想/不需要它们之间的共享行为。

需要router-link-exact-active

https://github.com/vuejs/rfcs/blob/master/active-rfcs/0028-router-active-link.md router-link-exact-active

示例:https://codesandbox.io/s/vue-router-forked-ocxxbl?file=/src/components/Navigation.vue

感谢Paul Tsai让我意识到这是Vue 3特有的问题。意识到这有助于缩小我的搜索范围,然后我发现了这个:

Vue 3 router- router-link-active not working

它有一个工作解决方案链接,因为router-link-active不再从URL计算,而是从路由器本身定义的层次结构中计算。

最新更新