Keep-Alive-Multilevel-Routing-Cache-Problem in Vue

Keep-Alive-Multilevel-Routing-Cache-Problem in Vue

1. Problembeschreibung

Wenn im Abstimmungscenter die letzten beiden praktischen Navigationsmenüs dasselbe Modul sind und Menüs der dritten Ebene oder höher sind, können sie beim Wechseln zwischen den beiden praktischen Registerkarten normal zwischengespeichert werden. Wenn jedoch die letzte Registerkarte gelöscht wird, wird die andere Registerkarte nicht mehr zwischengespeichert.

2. Ursachenanalyse

Standardmäßig unterstützt Keep-Alive zwei Caching-Ebenen, und der Cache von Seiten auf Ebene drei und höher ist ungültig. Die vorherige Verarbeitungsmethode lautet: Nach der Überwachung der Routenänderung werden die aktuelle Routenkennung und die übergeordnete Kennung zusammen gespeichert. Wenn mehrere Seiten vorhanden sind, werden beim Schließen einer der Seiten auch die Kennung von sich selbst und der übergeordneten Seite gelöscht. Zu diesem Zeitpunkt befindet sich im Array keine übergeordnete Kennung, und der Cache anderer Seiten auf derselben Ebene ist ungültig.

3. Lösung

Teilen Sie alle Routen in der Routing-Konfigurationstabelle in zwei Vorgänge auf. Einer besteht darin, sie für die Menüanzeige so zu belassen, wie sie sind, und der andere darin, die Routing-Konfigurationstabelle zu reduzieren und alle Routen in sekundäre Routen zu verarbeiten, sodass Keep-Alive standardmäßig das Caching unterstützen kann.

4. Verarbeitung

Holen Sie sich die komplette Routing-Konfiguration

const Module = []
files.keys().forEach(key => {
    const filesObj = Dateien(Schlüssel).default || Dateien(Schlüssel)
    Objekt.Schlüssel(filesObj).fürJeden(SchlüsselEins => {
        module.push(filesObj[keyOne])
    })
})

Vorgang schließt Routing-Konfiguration ab

export const menuList = module; // Für die Menüanzeige​
const routerList = formatTwoStageRoutes(formatFlatteningRoutes(modules)); // Die Routen in zweistufige Routen aufteilen​
const router = neuer VueRouter({
    scrollBehavior: () => ({ y: 0 }),
    Modus: "Verlauf",
    Basis: Prozess.Umgebung.BASE_URL,
    Routen: Routerliste, //Verwenden Sie die abgeflachten Routen in den Routing-Konfigurationselementen})

Abflachungsmethode

export const formatFlatteningRoutes = (routesList => {
  wenn (Routenliste.Länge <= 0) Routenliste zurückgeben;
  lass Liste = [];
  routesList.forEach(v => {
    wenn(v.Pfad === '/') {
      // Wird verwendet, um das anfängliche Layout und die Startseite hinzuzufügen. Andere Center-Konfigurationen filtern das Layout und die übergeordneten Knoten heraus und behalten nur die Routen in den untergeordneten Elementen list.push(v);
      Liste = Liste.concat(formatFlatteningRoutes(v.children))
    } sonst wenn (v.children && v.children.length > 0) {
      Liste = Liste.concat(formatFlatteningRoutes(v.children))
    } anders {
      Liste.push(v);
    }
  })
  Liste zurückgeben;
})
​
exportiere const formatTwoStageRoutes = Liste => {
  wenn (Listenlänge <= 0) Liste zurückgeben;
  const routerList = [];
  Liste.fürJeden(v => {
    wenn (v.Pfad === '/') {
      routerList.push({
        Komponente: v.Komponente,
        Name: v.name,
        Pfad: v.Pfad,
        Umleitung: v.redirect,
        meta: v.meta,
        Kinder: []
      })
    } sonst wenn (v.Pfad === '/login' || v.Pfad === '/showcasePage') {
      // Seiten, die keine Layoutkonfiguration erfordern routerList.push(v)
    } anders {
      routerList[0].children.push({ ...v })
    }
  })
  Routerliste zurückgeben;
}

Dies ist das Ende dieses Artikels über das Problem des Keep-Alive-Multi-Level-Routing-Cache in Vue. Weitere relevante Inhalte zum Keep-Alive-Multi-Level-Routing-Cache von Vue 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:
  • Die Keep-Alive-Komponente in Vue implementiert das Caching mehrstufiger verschachtelter Routen
  • Detaillierte Erläuterung des Routing Guard- und Keep-Alive-Lebenszyklus von Vue
  • Detaillierte Erklärung zu Keep-Alive in Vue
  • Detaillierte Erläuterung der Keep-Alive- und Unified-Routing-Verarbeitung von Vue3-Cache-Seiten
  • So leeren Sie den Cache nach der Verwendung von Keep-Alive in Vue
  • Analyse des Implementierungsprinzips von Vue Keep-Alive

<<:  Implementierung der Festlegung einer festen IP beim Starten eines Docker-Containers

>>:  Anwendungsszenario für die MySQL-Konfiguration mehrerer Instanzen

Artikel empfehlen

So verwenden Sie worker_threads zum Erstellen neuer Threads in nodejs

Einführung Wie im vorherigen Artikel erwähnt, gib...

Schritte zum Erstellen Ihres eigenen YUM-Repositorys

Einfach ausgedrückt lautet die IP der als Lager v...

Analyse des Implementierungsprozesses der drei Modi des VMWare-Netzwerkadapters

Drei Modi Bridged (Bridge-Modus), NAT (Network Ad...

Ein einfaches Beispiel für die Verwendung von Vue3-Routing VueRouter4

Routenplanung vue-router4 behält den Großteil der...

JavaScript-Canvas zum Erstellen eines Rubbellos-Beispiels

In diesem Artikel wird der spezifische Code von J...

Zusammenfassung der Methoden zum Löschen des Cache im Linux-System

1) Einführung in den Cache-Mechanismus Um die Lei...

Detaillierte Erklärung der Set-Datenstruktur von JavaScript

Inhaltsverzeichnis 1. Was ist Set 2. Konstruktor ...

Beispielerklärung für Ausführungskontext und Ausführungsstapel in JavaScript

JavaScript - Prinzipienreihe Wenn wir in der tägl...

Tipps zur Datenstatistik in MySQL

Als häufig verwendete Datenbank erfordert MySQL v...

Wird CSS3 SCSS wirklich ersetzen?

Beim Styling unserer Webseiten haben wir die Wahl...

Beim Hochladen von Bildern mit Axios in Vue sind Probleme aufgetreten

Inhaltsverzeichnis Was ist FormData? Eine praktis...

Zusammenfassung der allgemeinen Docker-Befehle und Tipps

Installationsskript Ubuntu / CentOS Es scheint ei...

Google Translate Tool: Mehrsprachige Webseiten schnell umsetzen

Google China hat ein Übersetzungstool veröffentlic...