wake-up-neo.com

Wie kann ich mit dem vue-router zurückgehen?

Ok, um es einfach zu erklären:

Ich habe 3x Seiten.

  • Seite 1 (Startseite)
  • Seite 2 (Menü)
  • Seite 3 (Über)

Seite 1 hat eine 

<router-link  to="/menu">

schaltfläche, die beim Klicken auf "/ menu" verweist.

Im Moment hat Seite 2 (Menü) eine 

<router-link  to="/">

schaltfläche und wenn diese Schaltfläche angeklickt wird, wird die vorherige Position "/" Page 1 (Home) wiederhergestellt.

Ich möchte jedoch keine Komponente für den Router für jede Seite erstellen, um zur vorherigen Seite zurückzukehren (als ob ich 100 Seiten hätte, könnte dies eine Menge Arbeit zurücksenden). Gibt es eine Möglichkeit, dies mit vue-router zu tun? ähnlich wie window.history.back ()

Neugierig, ob es einen Weg gibt, dies zu tun, da ich es in den Dokumenten nicht finden kann.

Danke im Voraus! John

23
John107

Sie können Programmatic Navigation verwenden. Um zurückzugehen, verwenden Sie Folgendes:

router.go(n) 

Dabei kann n positiv oder negativ sein (zurückgehen). Dies ist dasselbe wie bei history.back (). Sie können Ihr Element also wie folgt haben:

<a @click="$router.go(-1)">back</a>
63

Wenn Sie Vuex verwenden, können Sie https://github.com/vuejs/vuex-router-sync verwenden.

Initialisieren Sie es einfach in Ihrer Hauptdatei mit:

import VuexRouterSync from 'vuex-router-sync';
VuexRouterSync.sync(store, router);

Bei jeder Routenänderung wird das route-Zustandsobjekt in Vuex..__ aktualisiert. Als Nächstes können Sie getter erstellen, um das from-Objekt im Routenstatus zu verwenden, oder einfach die state (besser ist es, Getter zu verwenden, aber es ist eine andere Geschichte https: //vuex.vuejs.org/de/getters.html ), also kurz gesagt (innerhalb von components method/values):

this.$store.state.route.from.fullPath

Sie können es auch einfach in <router-link> Komponente platzieren:

<router-link :to="{ path: $store.state.route.from.fullPath }"> 
  Back 
</router-link>

Wenn Sie den obigen Code verwenden, wird der Link zum vorherigen Pfad dynamisch generiert. 

1
ojczeo