Beispiel für die Verwendung von Store in Vue3 zum Aufzeichnen der Bildlaufposition

Beispiel für die Verwendung von Store in Vue3 zum Aufzeichnen der Bildlaufposition

Gesamteffekt

Wenn Sie durch die Homepage-Liste scrollen und die Detailseite aufrufen, können Sie beim Zurückwechseln zur Homepage zum zuvor durchsuchten Ort zurückkehren.

Achten Sie auf Container-Scroll-Ereignisse

Definieren Sie ein Scroll-Ereignis und binden Sie es an das Scroll-Ereignis des Containers. Ich habe hier eine gewisse Drosselung vorgenommen.

const savePosY = () => {
      wenn(Zustand.Timer) return;
      Zustand.Timer = setzeTimeout(() => {
        let node = document.querySelector(".contentWrapper");
        //Scrollposition aufzeichnenstore.commit("setY",node.scrollTop)
        Zustand.Timer = null;
        Zeitüberschreitung löschen(Zustand.Zeitgeber);
      },100)

Holen Sie sich den Container in die Halterung, um das Ereignis zu binden

beimMounted(() => {
    let contentWrapper = document.querySelector(".contentWrapper");
    contentWrapper.addEventListener("scrollen",savePosY);
})

Konfiguration im Store

Der Speicher ist relativ einfach und enthält nur einen Status: y und Mutationen: setY

Standard exportieren {
    Zustand:{
         und: 0
    },
    Mutationen:
        setY(Zustand,Wert){
            Zustand.y = Wert;
        }
    }
}

Holen Sie sich die Scrollposition, wenn die Seite zurückspringt

Führen Sie die Operation auch in onMounted durch, da sonst das Containerelement nicht abgerufen werden kann. Da DOM in Vue asynchron gerendert wird, müssen wir die Operation in nextTick durchführen, um effektiv zu sein

nextTick(() => { contentWrapper.scrollTop = store.state.y; })

endlich

Das Obige ist der vollständige Inhalt dieses Artikels. Wenn etwas falsch ist oder eine bessere Methode vorliegt, können Sie uns dies gerne mitteilen und darauf hinweisen.

Oben sind die Einzelheiten des Beispiels, wie vue3 Store verwendet, um die Scrollposition aufzuzeichnen. Weitere Informationen dazu, wie Vue die Scrollposition aufzeichnet, finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Keep-alive in Vue implementiert zurück ohne Aktualisierung und behält die Scrollposition bei
  • Lösen Sie das Problem, dass Vue die Bildlaufposition nicht festlegen kann
  • So merken Sie sich die Scrollposition beim Aufrufen der Detailseite in Vue (Keep-Alive)
  • Lösung für den Fehler, dass die Seiten-Scrollposition nach dem Routenwechsel in Vue2.0 unverändert bleibt
  • Der Vue-Scroller gibt die Seite zurück, um sich den Beispielcode für die Bildlaufposition zu merken
  • Vue-Scroller-Beispielcode zum Aufzeichnen der Bildlaufposition
  • So lösen Sie das Problem der festen Bildlaufposition der Vue-Seite

<<:  So beheben Sie den Fehler "ERROR 1045 (28000)" beim Anmelden bei MySQL

>>:  So zeigen Sie Docker-Containerprotokolle an und bereinigen sie (getestet und effektiv)

Artikel empfehlen

Einige gängige CSS-Layouts (Zusammenfassung)

Zusammenfassung In diesem Artikel werden die folg...

Probleme bei der Installation von TensorRT im Docker-Container

Deinstallieren Sie die installierte Version auf U...

Allgemeine Datentypen in MySQL 5.7

——Anmerkungen aus „MySQL in einfachen Worten (zwe...

Detaillierte Erklärung der Überwachungseigenschaften von Vue

Inhaltsverzeichnis Vue-Monitoreigenschaften Was i...

So richten Sie den Start einer JAR-Anwendung unter CentOS7 ein

Fallstricke bei der Projektimplementierung Beim B...

Lösung für das Fehlerproblem bei der Remote-Verbindung von Vscode zu Ubuntu

1. Hintergrund des Vorfalls: Aus Arbeitsgründen m...

Schreiben und Verstehen von Pfeilfunktionen und diesem in JS

Inhaltsverzeichnis Vorwort 1. So schreiben Sie Fu...

Zusammenfassung von 6 Lösungen zur Implementierung des Singleton-Modus in JS

Vorwort Heute habe ich das Erzeugungsmuster im En...

So verbinden Sie eine virtuelle Linux-Maschine mit WLAN

Im Leben ist das Internet allgegenwärtig. Wir kön...

Detailliertes Installationstutorial für MySQL 5.7 unter CentOS 6 und 7

Für die Entwicklung benötigen Sie immer Daten. Al...

Detailliertes Installationstutorial für Windows 10 + MySQL 8.0.11 Zip

Vorbereiten: Downloadadresse für das MySQL 8.0 Wi...

Detailliertes Tutorial zur Verwendung des Plugins tomcat8-maven-plugin in Maven

Ich habe viele Artikel online durchsucht, aber ke...