Implementierungscode der Funktion zur Benutzervorschauzeitüberwachung der Vue-Seite

Implementierungscode der Funktion zur Benutzervorschauzeitüberwachung der Vue-Seite

In einem aktuellen Unternehmen besteht die Anforderung, dass das Online-Schulungssystem die Vorschauzeit des Benutzers für eine bestimmte Online-Vorschauseite kennen muss. Um das Ziel zu erreichen, dachten wir zunächst daran, die Lebenszyklusfunktionen der Vue-Seite zu verwenden, mounted und destroyed , die Logik für das Starten und Löschen des Timings hinzuzufügen und die Zeitdaten des entsprechenden Trainingsmaterials über die Hintergrundschnittstelle zu melden.

Wenn wir eine Idee im Kopf haben, können wir mit der Planung des spezifischen Codes beginnen.

Definieren Sie die Start- und Endzeitfunktionen

In data definieren wir den Timer über eine Variable, sodass über this.timer überall darauf zugegriffen werden kann, was praktisch ist, um ihn zu löschen, wenn die Seite später zerstört wird.

duration ist eine Zählvariable für die Dauer, die auf 0 initialisiert wird. Die Einheit kann anhand des zweiten Zeitintervallparameters des Timers als Sekunden oder Millisekunden bestimmt werden.

Standard exportieren {
  Daten() {
    zurückkehren {
      Timer: null,
      Dauer: 0
    }
  },
  Methoden: {
    startTimer() {
      dieser.timer = setzeInterval(() => {
        console.log('Beobachtungszeit: ', this.duration)
        diese.Dauer++
      }, 1000)
    },
    stopTimer() {
      Intervall löschen(dieser.Timer)
      this.updateViewHistory() // Berichtsdatenschnittstelle},
    updateViewHistory() {
    // Code der Meldeschnittstellenlogik...
    }
  }
}

In der Funktion startTimer drucken wir die duration aus, um zu überprüfen, ob die angezeigte Zeit korrekt ist.

Wie und wo anrufen

Nachdem wir die Start- und Endmethoden definiert haben, müssen wir darüber nachdenken, wo sie aufgerufen werden. Da der Inhalt der Vorschauseite nicht eindeutig ist, wird er basierend auf der Material- id gerendert, um Details zu erhalten. Wenn wir startTimer in den mounted Lebenszyklus schreiben, können wir beim Besuch von Seiten mit unterschiedlichen id nicht wie gewohnt zur gewünschten Logik wechseln.

Daher habe ich mich entschieden, auf den id -Parameter in der Route zu hören, um die Start- und Endlogik beim Vorschauen verschiedener Seiten umzuschalten.

betrachten:
    $route: {
      sofort: wahr,
      Handler(zu, von) {
        wenn (to.params.id) diese.trainingId = to.params.id
        dies.startTimer()
      }
    }
  }

Die Startzeitmethode wird aufgerufen und schließlich können wir die aktuelle Dauerausgabe log console

Dann müssen wir als letzten Schritt stopTimer aufrufen, um den Timer zu löschen und die Daten zu melden, wenn die Seite zerstört wird.

Da unsere Vorschauseite ein unabhängiger Tab ist, der über window.open geöffnet wird, wird sie über die Lebenszyklusfunktion destroyed überwacht. Wenn der Sprung über die Routing-Methode erfolgt, müssen wir ihn beim Verlassen der Seite zerstören, bevor wir ihn über destroyed abhören können.

montiert() {
    window.addEventListener('vor dem Entladen', e => this.beforeunloadHandler(e))
  },
  zerstört() {
    window.removeEventListener('vor dem Entladen', e => this.beforeunloadHandler(e))
  }

Rufen Sie stopTimer -Methode indirekt über die window -Methode auf

Methoden: {
    vor dem EntladenHandler (e) {
      dies.stopTimer()
    }
}

Einige Leute fragen sich vielleicht, warum stopTimer nicht direkt in destroyed aufgerufen wird, damit die einzigartige Logik getrennt und nicht mit anderer Logik in destroyed vermischt werden kann. Verbessern Sie die Lesbarkeit und Wartbarkeit des Codes.

Beim Schreiben von Code müssen wir nicht nur die Funktion implementieren, sondern auch mehr darüber nachdenken. Dies ist der Unterschied zwischen normalen Menschen und Experten.

Dies ist das Ende dieses Artikels über die Benutzervorschauzeit der Vue-Seitenüberwachung. Weitere relevante Inhalte zur Benutzervorschauzeit der Vue-Überwachung 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:
  • Vue überwacht Routenänderungen und aktualisiert die Seite in der Datei App.vue
  • Vue überwacht die Seitenaktualisierungs- und Schließfunktionen
  • vue App. Die öffentliche Komponente in vue ändert den Wert, um andere Komponenten oder .vue-Seiten auszulösen, die auf
  • Wenn Vue erscheint, hören Sie auf die Eingabetaste des Telefons, um die Popup-Funktion zu schließen (die Seite springt nicht).
  • So verwenden Sie vue.js, um auf Scroll-Ereignisse in Seitenkomponenten zu achten
  • Detaillierte Erklärung der Position der Bildlaufleiste und der Ereignisse des Bildlauflisteners bei Verwendung des Vue-Routers zum Wechseln der Seiten

<<:  Tutorial zur kostenlosen Konfiguration der MySQL 5.7.19 Winx64-Installationsversion

>>:  So löschen Sie Dateinamen oder Verzeichnisse mit Sonderzeichen in Linux

Artikel empfehlen

Code zur Änderung des CSS-Bildlaufleistenstils

Code zur Änderung des CSS-Bildlaufleistenstils .s...

Verlustfreie Erweiterungsmethode unter Linux

Überblick Der Server des Cloud-Plattform-Kunden k...

So übertragen Sie Dateien zwischen Docker-Container und lokalem Computer

Zum Übertragen von Dateien zwischen dem Host und ...

Beispielcode zur Implementierung einer Hohlmaskenebene mit CSS

Inhalt dieses Artikels: Seitenhohlmaskenebene, Se...

VUE führt die Implementierung der Verwendung von G2-Diagrammen ein

Inhaltsverzeichnis Über G2 Chart verwenden Vollst...

Methode zur Verhinderung von SSH-Cracking auf Linux-Servern (empfohlen)

1. Der Linux-Server konfiguriert /etc/hosts.deny ...

6 Vererbungsmethoden von JS Advanced ES6

Inhaltsverzeichnis 1. Vererbung der Prototypkette...

So wählen Sie die Transaktionsisolationsebene in einem MySQL-Projekt

Einführung Beginnen wir mit unserem Inhalt. Ich g...

Gängige Methoden und Probleme der Docker-Bereinigung

Wenn Sie Docker für die Entwicklung im großen Maß...

So fügen Sie einem Alpine-Image einen Ansible-Dienst hinzu

Verwenden Sie apk add ansible, um den Ansible-Die...

Detaillierte Erläuterung des MySQL-Isolationsebenen-Operationsprozesses (cmd)

Beispielvorgang für nicht festgeschriebenes Lesen...