2017-10-23 3 views
1

Momentan arbeite ich an einem Projekt, wo ich zwei Komponenten mit einem router-view, Auth und Dashboard habe. Diese beiden Komponenten haben unterschiedliche HTML-Strukturen, verwenden aber im Routing path: '' den gleichen Basispfad.Vue Js Routing - Eltern ohne Pfad

Die Routing-Datei würde wie folgt aussehen:

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

Ofcourse dies Komplikationen zu schaffen, da die Wege gleich sind. Gibt es eine Möglichkeit, eine Elternkomponente ohne einen Pfad zu haben?

Antwort

0

Sie können eine neue Komponente erstellen, die die Dashboard oder Auth Komponenten bedingt zeigt, dann, dass als Komponente für die in den Routen Config '/' Pfad festgelegt.

Etwas wie folgt aus:

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

Vielen Dank für Ihren Kommentar. Ja, das wäre eine Option. Aber halten Vue-Entwickler das für eine "saubere" Lösung für dieses Problem? –

+0

Es hängt von der Komplexität der App ab. Ein wesentlicher Nachteil dieser Methode ist, dass Sie für jede Kombination aus Route + Auth eine Komponente benötigen. In diesem Sinne würde ich es nicht als _clean_ betrachten, aber wenn Sie nur ein paar Routen haben, die Sie mit der Authentifizierung behandeln möchten, dann könnte dies die einfachste Lösung sein. Ich bin mir nicht sicher, was das Design Ihres Projekts ist, aber ein häufigerer Ansatz für die Anmeldung ohne Änderung der Route besteht darin, das Benutzername/Passwort-Formular in einem modalen Dialog anzuzeigen, wenn auf eine Login-Schaltfläche geklickt wird. – mickdekkers