Heim > Web-Frontend > Front-End-Fragen und Antworten > Vue schließt die Seite und löscht den lokalen Speicher

Vue schließt die Seite und löscht den lokalen Speicher

WBOY
Freigeben: 2023-05-24 10:22:07
Original
2795 Leute haben es durchsucht

Durch die kontinuierliche Aktualisierung und Iteration von Front-End-Frameworks ist Vue.js nach und nach zu einer der Standardfunktionen für die Front-End-Entwicklung geworden. Im Entwicklungsprozess von Vue.js verwenden wir häufig lokalen Speicher (localStorage), um einige Benutzerinformationen oder Cache-Daten zu speichern. Nach dem Schließen der Seite durch den Benutzer stellen diese lokal gespeicherten Daten jedoch häufig Sicherheitsrisiken dar oder beeinträchtigen den Betrieb anderer Anwendungen. Dazu müssen wir darüber nachdenken, wie wir den lokalen Speicher löschen, wenn wir die Seite in Vue.js schließen.

Allgemeine Praxis

Um in Vue.js den lokalen Speicher zu löschen, müssen Sie ihn mit localStorage.removeItem() löschen. Wenn wir der Seite Speicher hinzufügen, verwenden Sie die Methode localStorage.setItem(), um den Wert und den entsprechenden Schlüssel zu speichern. Zum Beispiel:

localStorage.setItem('user_name', '张三');
Nach dem Login kopieren

Wenn wir ein Schlüssel-Wert-Paar löschen möchten, verwenden Sie die Methode localStorage.removeItem() und übergeben Sie einfach den Schlüsselnamen. Beispiel:

localStorage.removeItem('user_name');
Nach dem Login kopieren

Unter normalen Umständen können wir das Ereignis zum Schließen der Seite abhören, feststellen, wann die Seite geschlossen wird, und dann den Vorgang zum Löschen des Speichers durchführen. Zum Beispiel:

window.onbeforeunload = function(){
    localStorage.removeItem('user_name');
}
Nach dem Login kopieren

Aber in Vue.js können wir das Fensterobjekt nicht direkt verwenden, um das Seitenschließereignis abzuhören. Wir müssen also einige Vue.js-Lösungen finden.

Vue-Plug-in

Vue-Plug-in ist ein Erweiterungsmechanismus von Vue.js, der es uns ermöglicht, einige Funktionen in Plug-ins zu kapseln, damit wir Vue.js-Komponenten aufrufen können. Wir können also versuchen, ein Vue-Plug-in zu schreiben, das auf das Ereignis zum Schließen der Seite lauscht und den lokalen Speicher löscht.

Zuerst müssen wir ein Vue-Plug-In schreiben, um den Vorgang des Löschens des lokalen Speichers zu kapseln. Im Plug-in können wir Vue.prototype verwenden, um den Prototyp von Vue.js zu erweitern, um den Aufruf von Komponenten zu erleichtern. Zum Beispiel:

const storageCleaner = {
  install(Vue) {
    Vue.prototype.$cleanStorage = function () {
      localStorage.clear();
    }
  }
}
Nach dem Login kopieren

Dann können wir es in Vue.js verwenden. Zunächst müssen Sie das Plug-In einführen und in der Initialisierungsoption von Vue.js registrieren. Zum Beispiel:

import Vue from 'vue'
import App from './App.vue'
import storageCleaner from './plugins/storageCleaner'

Vue.config.productionTip = false
Vue.use(storageCleaner)

new Vue({
  render: h => h(App),
}).$mount('#app')
Nach dem Login kopieren

In der Komponente können wir den lokalen Speicher über die Methode $cleanStorage() löschen. Zum Beispiel:

export default {
  methods: {
    logout() {
      //清除本地存储
      this.$cleanStorage();
    }
  }
}
Nach dem Login kopieren

Allerdings weist diese Methode noch gewisse Einschränkungen auf. Da Vue.js keine Komponentenzerstörungsoperation ähnlich der von AngularJS $scope.$on('$destroy', function() {}) bereitstellt, müssen wir noch zusätzlich darüber nachdenken, wie Komponenten unter bestimmten Umständen zerstört werden.

Vue.mixin

Vue.mixin ist ein weiterer Erweiterungsmechanismus von Vue.js, der es uns ermöglicht, mehrere Komponenten einzumischen, um eine Wiederverwendung von Code zu erreichen. Wir können ein globales Mixin schreiben und den Lebenszyklus-Hook beforeDestory darin abhören und den lokalen Speicher in diesem Hook löschen.

Zuerst müssen wir ein globales Mixin schreiben und uns den darin enthaltenen Lebenszyklus-Hook beforeDestory anhören. Zum Beispiel:

const storageCleanerMixin={
    beforeDestroy(){
        localStorage.clear();
    }
}
Nach dem Login kopieren

Dann müssen wir einen globalen Mixin in den Initialisierungsoptionen von Vue.js durchführen. Zum Beispiel:

import Vue from 'vue'
import App from './App.vue'
import storageCleanerMixin from './mixins/storageCleanerMixin'

Vue.mixin(storageCleanerMixin)

new Vue({
  render: h => h(App),
}).$mount('#app')
Nach dem Login kopieren

Auf diese Weise müssen wir keine Methode schreiben, um den lokalen Speicher in jeder Komponente zu löschen. Hören Sie sich einfach den Lebenszyklus-Hook beforeDestory im globalen Mixin an. Allerdings weist diese Methode auch einige Nachteile auf, nämlich dass sie den Lebenszyklus einiger Komponenten beeinträchtigen und zu abnormalen Situationen führen kann.

Zusammenfassung

Die oben genannten sind zwei Methoden zum Löschen des lokalen Speichers in Vue.js. Sie verwenden das Vue-Plug-in und Vue.mixin. Beide Methoden haben ihre eigenen Vor- und Nachteile und können entsprechend den tatsächlichen Anforderungen und Geschäftsszenarien ausgewählt werden. Gleichzeitig müssen Sie unabhängig von der verwendeten Methode beim Löschen des lokalen Speichers auf die Sicherheit der Daten achten, um Informationslecks oder andere Sicherheitsprobleme zu vermeiden.

Das obige ist der detaillierte Inhalt vonVue schließt die Seite und löscht den lokalen Speicher. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage