Javascript Vue Js路由-无路径的父级

Javascript Vue Js路由-无路径的父级,javascript,vue.js,routing,vue-router,Javascript,Vue.js,Routing,Vue Router,目前我正在从事一个项目,其中我有两个组件,分别是路由器视图、身份验证和仪表板。这两个组件具有不同的html结构,但在路由路径:'中使用相同的基本路径 路由文件如下所示: { path: '/', component: Dashboard, children: [ ... ], path: '/', component: Auth, children: [ ... ] } 当然,这会造成复杂性,因为路径是相同的。有没有办法让父组件没有路径 您可以创

目前我正在从事一个项目,其中我有两个组件,分别是
路由器视图
身份验证
仪表板
。这两个组件具有不同的html结构,但在路由
路径:'
中使用相同的基本路径

路由文件如下所示:

{
  path: '/',
  component: Dashboard,
  children: [
    ...
  ],
  path: '/',
  component: Auth,
  children: [
    ...
  ]
}

当然,这会造成复杂性,因为路径是相同的。有没有办法让父组件没有路径

您可以创建一个新组件,有条件地显示
仪表板
Auth
组件,然后将其设置为路由配置中
'/'
路径的组件

大概是这样的:

<template>
  <auth v-if="isAuthenticating" />
  <dashboard v-else />
</template>

您可以创建一个新组件,有条件地显示
仪表板或
Auth
组件,然后将其设置为路由配置中
'/'
路径的组件

大概是这样的:

<template>
  <auth v-if="isAuthenticating" />
  <dashboard v-else />
</template>


谢谢您的评论。是的,这是一个选择。但是VUE开发者认为这是一个“干净”的解决方案吗?这取决于应用程序的复杂性。这种方法的一个相当大的缺点是,对于route+auth的每个组合,都需要一个组件。在这个意义上,我不认为它是干净的,但是如果你只有两条路线,你想处理Authon,那么这可能是最直接的解决方案。我不确定你的项目设计是什么,但在不改变路线的情况下处理登录的一种更常见的方法是,单击登录按钮时,在模式对话框中显示用户名/密码表单。谢谢你的评论。是的,这是一个选择。但是VUE开发者认为这是一个“干净”的解决方案吗?这取决于应用程序的复杂性。这种方法的一个相当大的缺点是,对于route+auth的每个组合,都需要一个组件。在这个意义上,我不认为它是干净的,但是如果你只有两条路线,你想处理Authon,那么这可能是最直接的解决方案。我不确定您的项目设计是什么,但在不更改路径的情况下处理登录的更常见方法是,单击登录按钮时在模式对话框中显示用户名/密码表单。您找到解决方案了吗?我正在做类似的事情,我认为这是唯一的办法。@BlackCode我很抱歉这已经是很久以前的事了。我最终将
Auth
组件的路径更改为
/Auth
(我想)。也许你应该提出一个新的问题来解释你想要什么,在评论中给我贴上标签什么的。谢谢!别担心,托马斯。最后,我会像你一样做,但是如果用户没有登录或者页面需要auth:,我会使用导航卫士重定向。)你找到解决方案了吗?我正在做类似的事情,我认为这是唯一的办法。@BlackCode我很抱歉这已经是很久以前的事了。我最终将
Auth
组件的路径更改为
/Auth
(我想)。也许你应该提出一个新的问题来解释你想要什么,在评论中给我贴上标签什么的。谢谢!别担心,托马斯。最后,我会像您一样使用导航卫士重定向,以防用户未登录或页面需要auth:)