Detaillierte Erläuterung der Keep-Alive- und Unified-Routing-Verarbeitung von Vue3-Cache-Seiten

Detaillierte Erläuterung der Keep-Alive- und Unified-Routing-Verarbeitung von Vue3-Cache-Seiten

1. Einleitung

Wenn Sie Routing verwenden, um zu anderen Seiten zu springen, müssen Sie die aktuelle Seite zwischenspeichern. Wenn Sie beispielsweise von einer Listenseite zu einer Detailseite springen, muss der Listeninhalt zwischengespeichert und die Position der Bildlaufleiste gespeichert werden. Manchmal werden einige Inhalte auf der Seite, die zwischengespeichert werden müssen, nicht zwischengespeichert. Kurz gesagt, es gibt verschiedene Situationen. Hier sind einige Beispiele.

Die Verwendung von vue2 und vue3 ist unterschiedlich

Die Methoden created() und mounted() werden ausgeführt, wenn die Seite initialisiert wird. Wenn die Seite zwischengespeichert ist, werden diese beiden Methoden nicht ausgeführt. Wenn die Seite zwischengespeichert ist, werden außerdem die Methoden destroy() in vue2 und unmounted() in vue3 nicht ausgeführt.

Die Methode activated() wird jedes Mal ausgeführt, wenn Sie die Seite aufrufen

2. Verwendung

1. Unterschiede zwischen vue2 und vue3

Ansicht2:

<Vorlage>
	<div id="nav">
	    <router-link to="/">Zuhause</router-link> |
	    <router-link to="/about">Über</router-link>
  	</div>
	<!-- vue2.x-Konfiguration -->
   <am Leben erhalten>
    <router-view v-if="$route.meta.keepAlive" />
  </am Leben erhalten>
  <router-view v-if="!$route.meta.keepAlive"/>
</Vorlage>

Ansicht3:

<Vorlage>
	<div id="nav">
	    <router-link to="/">Zuhause</router-link> |
	    <router-link to="/about">Über</router-link>
  	</div>
  <!-- Vue3.0-Konfigurationskomponente hat feste Schreibweise -->
  <router-view v-slot="{ Komponente }">
    <am Leben erhalten>
      <component :is="Komponente" v-if="$route.meta.keepAlive"/>
    </am Leben erhalten>
    <component :is="Komponente" v-if="!$route.meta.keepAlive"/>
  </Router-Ansicht> 
</Vorlage>

Konfiguration in route.js:

Weg: '/',
Name: "Home",
Komponente: Home,
Meta:{
  keepAlive: wahr
}

Wirkung:

2. Einige Daten auf der Seite müssen nicht zwischengespeichert werden

Sie können die Logik, die eine teilweise Aktualisierung erfordert, in der Methode „activated()“ verarbeiten.

...
Daten, die teilweise aktualisiert werden müssen: <input type="text" v-model="newStr" />
...
Daten() {
  zurückkehren {
    newStr: "2",
  };
},
montiert() {
  console.log("gemountete Methode ausgeführt");
  dies.newStr = "3";
},
aktiviert() {
  console.log("Die aktive Methode wurde ausgeführt...");
  dies.newStr = "4";
}

Wirkung:

3. Dynamisches Setzen der KeepAlive-Eigenschaft

Sie können die Eigenschaft „keepAlive“ auch in der Vue-Datei festlegen. Sie ist nur wirksam, wenn sie in der Methode beforeRouteEnter () hinzugefügt wird, d. h. wenn Sie die Seite in Home.vue aufrufen:

  // Benutze den Guard in der Komponente um etwas mit dem Seitenverlassensereignis zu tun // to ist die umzuleitende Route, from ist die Route der vorherigen Seite beforeRouteEnter(to, from, next) {
    zu.meta.keepAlive = wahr;
    // Die Route wird mit dem Sprung next() fortgesetzt;
  }

4. Verwenden Sie Include und Exclude, um Komponenten zu konfigurieren, die zwischengespeichert werden müssen

In app.vue konfigurieren:

<router-view v-slot="{ Komponente }">
  <keep-alive include="testKA">
    <Komponente: ist = "Komponente"/>
  </am Leben erhalten>
</Router-Ansicht>

Darunter entspricht testKA dem Namen einer Komponente:

Standard exportieren {
    Name:'testKA', // Keep-Alive-Include-Attribut stimmt mit dem Komponentennamen überein
    Daten() {return {}},
    aktiviert() {
        // Der Lebenszyklus der zwischengespeicherten Keepalive-Seite wird bei jedem Aufruf ausgeführt},
}

Darüber hinaus ist die Include-Verwendung wie folgt:

<!-- Durch Komma getrennte Zeichenfolge -->
<keep-alive include="a,b">
  <Komponente: ist = "Ansicht"></Komponente>
</am Leben erhalten>

<!-- Regulärer Ausdruck (mit `v-bind`) -->
<keep-alive :include="/a|b/">
  <Komponente: ist = "Ansicht"></Komponente>
</am Leben erhalten>

<!-- Array (mit `v-bind`) -->
<keep-alive :include="['a', 'b']">
  <Komponente: ist = "Ansicht"></Komponente>
</am Leben erhalten>

Die Verwendung von „exclude“ ist dieselbe wie die von „include“ und stellt Komponenten dar, die nicht zwischengespeichert werden.

5. Einige Seiten müssen zwischengespeichert und einige Seiten aktualisiert werden

Beschreibung: Wenn drei Seiten a, b und c vorhanden sind und a->b, b die Seite aktualisiert, dann aktualisiert b->c, c->b, b die Seite nicht und dann aktualisiert b->a, a->b, b die Seite.
Selbsttest, dies kann nur mit vuex erreicht werden. Der Nachteil besteht jedoch darin, dass die Methode activated () nicht ausgeführt wird, wenn die Seite zwischengespeichert ist

6. Cache ist nur im First-Level-Routing wirksam

Wenn Sie Cache in der sekundären Route verwenden müssen, können Sie die gleiche Konfiguration in der primären Route vornehmen

store.js-Code:

Zustand: {
  keepAlives:[]
},
Mutationen:
  SET_KEEP_ALIVE(Zustand,Parameter) {
    state.keepAlives = Parameter
  }
},
Getter: {
  keepAlive:Funktion(Zustand){
    Status zurückgeben.keepAlives
  }
}

App.vue-Code:

<Vorlage>
  <div id="nav">
    <router-link to="/bbb">BBB</router-link> |
    <router-link to="/home">Zuhause</router-link> |
    <router-link to="/about">Über</router-link>
  </div>
  <router-view v-slot="{ Komponente }">
    <am Leben halten :include="am Leben halten">
      <Komponente: ist = "Komponente"/>
    </am Leben erhalten>
  </Router-Ansicht>
</Vorlage>
<Skript>
  Standard exportieren{
    berechnet:{
      keepAlive(){
        gib dies zurück.$store.getters.keepAlive
      }
    }
  }
</Skript>

Home.vue-Code:

// Benutze den Guard in der Komponente um etwas mit dem Seitenverlassensereignis zu tun // to ist die umzuleitende Route, from ist die Route der vorherigen Seite beforeRouteEnter(to, from, next) {
  nächste(vm=>{
    wenn(von.Pfad == "/bbb"){
      vm.$store.commit("SET_KEEP_ALIVE",["Startseite"])
    }
  });
},
vorRouteAbfahren(nach, von, weiter) {
  wenn (zu.Pfad == "/about") {
    console.log("Sie werden zur /about-Seite weitergeleitet...")
  } anders {
    console.log("Sie werden auf eine Nicht-/Infoseite umgeleitet...")
    dies.$store.commit("SET_KEEP_ALIVE",[])
  }
  // Die Route wird mit dem Sprung next() fortgesetzt;
}

Wirkung:

Zusammenfassen

Dies ist das Ende dieses Artikels über Vue3-Cache-Seiten-Keep-Alive und einheitliche Routing-Verarbeitung. Weitere relevante Inhalte zu Vue3-Cache-Seiten-Keep-Alive finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Beispielcode zum Keeping-Alive mit Vue-Router, um einen Cache-Seiteneffekt zu erzielen
  • Detaillierte Erklärung von Keep-Alive + Vuex, um zwischengespeicherte Seiten flexibel zu machen
  • Beispiel für einen dynamischen Cache für Keep-Alive-Ereignisse in einer integrierten Vue-Komponente
  • Das Vue-Projekt keepAlive arbeitet mit vuex zusammen, um den Routing-Cache-Modus dynamisch einzustellen

<<:  Einige Details zu MySQL-Indizes

>>:  Analyse der Implementierungsmethode zum Ändern des Standardnetzwerksegments von Docker

Artikel empfehlen

Ein vollständiges Tutorial zur Verwendung der Axios-Kapselung in Vue

Vorwort Heutzutage wird in Projekten häufig die A...

Upgrade der Docker-Version von MySQL 5.7 auf MySQL 8.0.13, Datenmigration

Inhaltsverzeichnis 1. Sichern Sie die alten MySQL...

Teilen Sie die 15 besten HTML/CSS-Design- und Entwicklungsframeworks

Professionelles Webdesign ist komplex und zeitint...

vue-element-admin global laden warten

Aktuelle Anforderungen: Globales Laden, alle Schn...

Lösung für das img-Tag-Problem unter IE10

Finden Sie das Problem Ich habe vorher eine einfa...

Tutorial zur Installation und Konfiguration der Version MySQL 5.7.23

Ich habe drei Stunden gebraucht, um MySQL selbst ...

Beispielanalyse der von MySQL 5.7 generierten Spaltennutzung

Dieser Artikel veranschaulicht anhand von Beispie...

Beispielcode zum Konfigurieren von Nginx zur Unterstützung von https

1. Einleitung Lassen Sie Ihre Website immer noch ...

Super einfache QPS-Statistikmethode (empfohlen)

Statistik der QPS-Werte der letzten N Sekunden (i...

Implementierung von JavaScript zum Herunterladen und Hochladen verknüpfter Bilder

Da wir Bilder hochladen möchten, müssen wir zunäc...

Verwenden einer MySQL-Datenbank mit Python 3.4 unter Windows 7

Der detaillierte Prozess der Verwendung der MySQL...

HTML-Tabellen-Markup-Tutorial (14): Tabellenkopf

<br />In der HTML-Sprache können Sie der Tab...

Detaillierte Erklärung zur Verwendung von Rastereigenschaften in CSS

Rasterlayout Dem übergeordneten Element hinzugefü...