Vue kapselt ein TodoList-Beispiel und implementiert die Anwendung des lokalen Browser-Cache

Vue kapselt ein TodoList-Beispiel und implementiert die Anwendung des lokalen Browser-Cache

In diesem Artikel wird hauptsächlich der Fall vorgestellt, in dem Vue eine TodoList kapselt und den lokalen Browser-Cache in der Anwendung implementiert. Er wird wie folgt mit Ihnen geteilt:

Bildbeschreibung hier einfügen

Ein einfaches Todolist-Beispiel wird mithilfe von Vue gekapselt. Die lokale Cache-Technologie des Browsers wird ebenfalls hinzugefügt.

Lokaler Browser-Cache:

  • Prämisse : Im Allgemeinen gehen die von uns definierten Variablen oder die von Vuex gespeicherten Daten beim Aktualisieren des Browsers verloren, sodass der historische Aufzeichnungseffekt nicht erreicht werden kann. Die Verwendung des Browser-Cache kann uns jedoch dabei helfen, dieses Problem zu lösen ...
  • Der Browser-Cache wird in zwei Typen unterteilt: sessionStorage und localStorage. Die Prototypketten der beiden sind wie folgt:

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Es ist ersichtlich, dass ihre Prototypketten im Wesentlichen gleich sind. Der einzige Unterschied besteht darin, dass

  • localStorage fungiert als lokaler Cache, der dauerhaft ist. Sofern Sie ihn nicht manuell löschen oder leeren, bleibt er immer im Browser vorhanden.
  • sessionStorage wird für das Session-Caching verwendet. Sein Lebenszyklus besteht nur in der aktuellen Browser-Sitzung. Beim Schließen des Browsers gehen die Informationen verloren. Wenn Sie die Seite jedoch nur aktualisieren, bleiben die Daten trotzdem gespeichert.

In diesem Beispiel wird sessionStorage verwendet und ein kleines Paket dafür erstellt.

const Speicher = {
	set(Schlüssel, Wert){
		window.sessionStorage.setItem(Schlüssel, JSON.stringify(Wert));
	},
	get(Schlüssel){
		gibt JSON.parse zurück (window.sessionStorage.getItem(Schlüssel));
	},
	entfernen(Schlüssel){
		window.sessionStorage.removeItem(Schlüssel);
	}
}

Standardspeicher exportieren;

Beispielcode:

<Vorlage>
	<div Klasse="todo">
		<Kopfzeile>
			<input type="text" placeholder="Eingeben..." v-model="keyword" @keydown.enter="handleList">
			Aufgabenliste
		</header>
		<!-- In Bearbeitung -->
		<h4>In Bearbeitung...{{dolistNumber}}</h4>
		<template v-for="(Element, Index) in dolist" :key="index">
			<div Klasse="dolist" v-if="!item.checked">
				<label :für="index +'l'">
					<input type="checkbox" v-model="item.checked" :id="index +'l'" @change="handleChecked">
					{{item.title}}
				</Bezeichnung>
				<span @click="cancalDo(index)">X</span>
			</div>
		</Vorlage>

		<!-- Abgeschlossen -->
		<h4>Abgeschlossen...{{dolist.length - dolistNumber}}</h4>
		<template v-for="(Element, Index) in dolist" :key="index">
			<div Klasse="dolist" v-if="item.checked">
				<label :für="index +'ll'">
					<input type="checkbox" v-model="item.checked" :id="index +'ll'" @change="handleChecked">
					{{item.title}}
				</Bezeichnung>
				<span @click="cancalDo(index)">X</span>
			</div>
		</Vorlage>
	</div>
</Vorlage>

<Skript>
	Speicher aus „../storage.js“ importieren;
	Standard exportieren {
		Name: "Aufgabenliste",
		Daten() {
			zurückkehren {
				Stichwort: "", // Eingabeoptionen dolist: [],
			}
		},
		berechnet:{
			dolistNumber(){
				gib dies zurück.dolist.filter(item => item.checked === false).length;
			}
		},
		Methoden: {
			handleChecked(){
				// Aktualisieren nach Statusänderung storage.set('dolist', this.dolist);
			},
			handleList() {
				wenn (dieses.Schlüsselwort !== "") {
					dies.dolist.push({
						Titel: dieses Schlüsselwort,
						geprüft: falsch,
					});
					dieses.Schlüsselwort = "";
					Speicher.set('dolist', diese.dolist);
				}
				
			},
			abbrechen(index) {
				// dies löschen this.dolist.splice(index, 1);
				Speicher.set('dolist', diese.dolist);
			}
		},
		montiert(){
			let dolist = storage.get('dolist');
			wenn(dolist){
				dies.dolist = dolist;
			}
		},

	}	
</Skript>

<Stil>
	.todo {
		Rand: 400px automatisch;
		Mindesthöhe: 300px;
		Breite: 800px;
		Hintergrundfarbe: #eee;
	}

	.todo-Header {
		Position: relativ;
		Textausrichtung: zentriert;
		Höhe: 60px;
		Zeilenhöhe: 60px;
		Schriftgröße: 20px;
		Rahmen unten: 2px durchgezogen #fff;
	}

	.todo Header-Eingabe {
		Position: absolut;
		links: 40px;
		oben: 50 %;
		transformieren: verschiebeY(-50%);

		Gliederung: keine;
		Zeilenhöhe: 30px;
		Rahmenradius: 15px;
		Polsterung links: 30px;
		Rand: 1px durchgezogen #999;
		Schriftgröße: 16px;
		Breite: 100px;
		Übergang: alle 0,6 s linear;
	}

	.todo header input:focus {
		Breite: 200px;
	}

	.dolist {
		Polsterung: 20px;
		Schriftgröße: 16px;

	}

	.dolist Bezeichnung {
		Cursor: Zeiger;
	}

	.dolist Eingabe {
		Rand rechts: 10px;

	}

	.dolist span:letztes-Kind {
		schweben: rechts;
		Rand: 1px durchgehend grau;
		Hintergrundfarbe: #999;
		Farbe: #fff;
		Randradius: 50 %;
		Polsterung: 5px;
	}

	h4 {
		Polsterung unten: 20px;
		Textausrichtung: zentriert;
	}
</Stil>

Damit ist dieser Artikel über den Fall der Vue-Kapselung einer TodoList und die Anwendungsimplementierung des lokalen Browser-Cache abgeschlossen. Weitere relevante Vue-TodoList-Inhalte finden Sie in früheren Artikeln auf 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:
  • Detaillierte Erklärung des einfachen To-Do-Liste-Beispiels von Vuex
  • Vue lernt die Kommunikation zwischen übergeordneten und untergeordneten Komponenten von TodoList
  • Vuejs implementiert eine einfache TodoList-Funktion und einen Komponentenbeispielcode
  • vue.js Beispiel für ein TodoList-Projekt
  • Detaillierte Erklärung des TodoList-Falls von Vue

<<:  Detaillierte Erläuterung zur Verwendung des Top-Befehls zur Analyse der Linux-Systemleistung

>>:  Linux-System zum Anzeigen von CPU, Maschinenmodell, Speicher und anderen Informationen

Artikel empfehlen

Detailliertes Tutorial zur Installation eines PXC-Clusters mit Docker

Inhaltsverzeichnis Vorwort Vorbereitende Vorberei...

Schritte zur Installation von MySQL 8.0.23 unter Centos7 (Anfängerstufe)

Lassen Sie mich zunächst kurz erklären, was MySQL...

Detaillierte Analyse des Explain-Ausführungsplans in MySQL

Vorwort Das Schreiben effizienter SQL-Anweisungen...

Detaillierte Erläuterung der Systemeingabe- und -ausgabeverwaltung in Linux

Verwaltung der Ein- und Ausgaben im System 1. Ver...

CSS3 erstellt 3D-Würfel-Ladeeffekte

Kurzbeschreibung Dies ist ein cooler 3D-Würfel-Vo...

Einführung in Netzwerktreiber für Linux-Geräte

Kabelgebundenes Netzwerk: Ethernet Drahtloses Net...

Erstellen eines sekundären Menüs mit JavaScript

In diesem Artikelbeispiel wird der spezifische Ja...

So ändern Sie Flash-SWF-Dateien in Webseiten

Ich denke, dies ist ein Problem, auf das viele Leu...

Zusammenfassung der Fallstricke beim Importieren von OVA-Dateien in VMware

Quelle des Problems Wie wir alle wissen, erzeugt ...

Tutorial zur Verwendung von Webpack in JavaScript

Inhaltsverzeichnis 0. Was ist Webpack 1. Einsatz ...

Beispielcode zur Implementierung eines Hintergrundunschärfeeffekts mit CSS

Ist es der unten gezeigte Effekt? Wenn ja, lesen ...

Beispiele für optimistisches und pessimistisches Sperren in MySQL

Die Aufgabe der Parallelitätskontrolle in einem D...