Der Unterschied zwischen this.$router und this.$route in Vue und der push()-Methode

Der Unterschied zwischen this.$router und this.$route in Vue und der push()-Methode

Im offiziellen Dokument heißt es:

Durch Einfügen des Routers können wir über this.$router in jeder Komponente auf den Router zugreifen und über this.$route auch auf die aktuelle Route.

Es kann wie folgt verstanden werden:

this.$router entspricht einem globalen Routerobjekt, das viele Eigenschaften und Objekte enthält (wie z. B. ein Verlaufsobjekt). Jede Seite kann dessen push(), replace(), go() und andere Methoden aufrufen.

this.$route stellt das aktuelle Routenobjekt dar. Jede Route hat ein Routenobjekt, das ein lokales Objekt ist, das den entsprechenden Namen, Pfad, Parameter, die Abfrage und andere Attribute abrufen kann.

Über die push()-Methode:

Um zu einer anderen URL zu navigieren, verwenden Sie die Methode router.push. Diese Methode fügt dem Verlaufsstapel einen neuen Datensatz hinzu, sodass der Benutzer zur vorherigen URL zurückkehrt, wenn er auf die Zurück-Schaltfläche des Browsers klickt.

Wenn Sie auf einen <router-link> klicken, wird diese Methode intern aufgerufen, sodass ein Klick auf <router-link :to="..."> dem Aufruf von router.push(...) entspricht.

Der Aufruf der push()-Methode:

    // Zeichenfolge this.$router.push('home')
 
    //Objekt this.$router.push({path:'home'})
 
    //Benannte Route this.$router.push({name:'user', params:{userId: '123'}})
 
    //Mit Abfrageparametern wird daraus /register?plan=private
    this.$router.push({Pfad:'registrieren', Abfrage:{Plan:privat}})

Hinweis: Wenn ein Pfad angegeben ist, werden Parameter ignoriert, was bei der Abfrage im obigen Beispiel nicht der Fall ist. Stattdessen müssen Sie einen Routennamen angeben oder den vollständigen Pfad mit Parametern schreiben, wie im folgenden Beispiel gezeigt:

    const Benutzer-ID = "123";
 
    dies.$router.push({Pfad:`/user/${userId}`}); //->/user/123
 
    this.$router.push({name:'user', params:{userId}}); //->/user/123
 
    //Parameter hier sind nicht wirksam this.$router.push({path:'/user', params:{userId}}); //->/user

Dieselbe Regel gilt für die Eigenschaft „to“ der Router-Link-Komponente.

Zusammenfassen:

params wird zum Übergeben von Parametern verwendet. In push kann es nur name:'xxx' sein, nicht path:'/xxx', da params nur name verwenden kann, um Routen einzuführen. Wenn hier path geschrieben wird, ist die Seite, die die Parameter empfängt, undefiniert.

Methode zur Übergabe der Routing-Parameter:

1. Schreiben Sie den vollständigen Pfad handschriftlich auf:

    dies.$router.push({Pfad: `/user/${userId}`});

Parameter abrufen: this.$route.params.userId

2. Übergabe mit Parametern:

    dies.$router.push({name:'user', params:{userId: '123'}});

Parameter abrufen: this.$route.params.userId

URL-Format: URL ohne Parameter, http:localhost:8080/#/user

3. Verwenden Sie die Abfrage, um Folgendes zu übergeben:

    dies.$router.push({Pfad:'/Benutzer', Abfrage:{Benutzer-ID: '123'}});

Parameter abrufen: this.$route.query.userId

URL-Format: URL mit Parametern, http:localhost:8080/#/user?userId=123

Um es ganz klar auszudrücken: Query entspricht einer Get-Anfrage, und Sie können die Anfrageparameter in der Adressleiste sehen, wenn die Seite springt. Params entspricht einer Post-Anfrage, und die Parameter werden nicht in der Adressleiste angezeigt.

Beachten Sie, dass verschachtelte Pfade, die mit / beginnen, als Stammpfade behandelt werden. Dadurch können Sie die Vorteile verschachtelter Komponenten nutzen, ohne verschachtelte Pfade einrichten zu müssen.

Zusammenfassen

Damit ist dieser Artikel über den Unterschied zwischen this.$router und this.$route in Vue und der push()-Methode abgeschlossen. Weitere Informationen zum Unterschied zwischen this.$router und this.$route in Vue finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Lösen Sie das Problem, dass vue.js this.$router.push ungültig ist
  • Über das Problem der Aktualisierung von this.$router.replace({ path: ''/''}) ohne Effekt in vue3.0
  • So erhalten Sie die Parameter von this.$router.push in Vue
  • Vue.js this.$router.push kann keine Parameter abrufen
  • Vue this.$router.push(parameter) implementiert den Seitensprungvorgang

<<:  Linux verwendet den Befehl scp, um Dateien auf den lokalen Computer zu kopieren und lokale Dateien auf den Remote-Server zu kopieren

>>:  Tutorial zur Installation und Konfiguration der Dekomprimierungsversion von mysql8.0.0 winx64.zip

Artikel empfehlen

Natives JS zum Erstellen eines verschiebbaren Anmeldefelds

Dieser Artikel zeigt ein verschiebbares Anmeldefe...

Detailliertes Tutorial zur Installation von mysql5.7.18 auf centos7.3

1 Überprüfen Sie die Linux-Distributionsversion [...

JavaScript-Wissen: Konstruktoren sind auch Funktionen

Inhaltsverzeichnis 1. Definition und Aufruf des K...

Untersuchung des Problems der Flip-Navigation mit geneigter Maus

In diesem Artikel analysieren wir als Beispiel die...

Frage zur Webseitenerstellung: Bilddateipfad

Dieser Artikel stammt ursprünglich von 123WORDPRE...

Centos6.9-Installation Mysql5.7.18 Schrittaufzeichnung

Installationsreihenfolge rpm -ivh mysql-community...

So installieren Sie Docker und konfigurieren Alibaba Cloud Image Accelerator

Docker-Installation Über die Installation auf ein...

svg+css oder js zum Erstellen eines Tick-Animationseffekts

Mein Chef hatte mich gebeten, ein Programm zu ers...

Implementierung der One-Click-TLS-Verschlüsselung für die Docker-Remote-API

Inhaltsverzeichnis 1. Ändern Sie den Port 2375 vo...

So installieren Sie eine MySQL-Datenbank unter Ubuntu

Ubuntu ist ein kostenloses und quelloffenes Deskt...

Detaillierte Erläuterung des Beispielcodes für das elastische CSS3 Flex-Layout

1. Grundlegende Konzepte //Jeder Container kann a...