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

CSS3 implementiert den Beispielcode der NES-Spielekonsole

Ergebnisse erzielenImplementierungscode html <...

Windows 2019 Aktivierungs-Tutorial (Office2019)

Vor ein paar Tagen habe ich erfahren, dass die of...

Allgemeine Array-Operationen in JavaScript

Inhaltsverzeichnis 1. verketten() 2. beitreten() ...

MySQL extrahiert interne JSON-Felder und gibt sie als Zahlen aus.

Inhaltsverzeichnis Hintergrund Problemanalyse 1. ...

Beispielcode zum Bereitstellen eines Spring-Boot-Projekts mit Docker

1. Grundlegender Spring-Boot-Schnellstart 1.1 Sch...

So verwenden Sie LibreOffice zum Konvertieren von Dokumentformaten unter CentOS

Die Projektanforderungen erfordern eine gewisse V...

Bootstrap 3.0 Studiennotizen CSS-bezogene Ergänzung

Die wesentlichen Inhalte dieses Artikels sind wie...

Was sind die Verwendungszwecke von Limits in MySQL (empfohlen)

SELECT * FROM Tabellenname Limit m,n; SELECT * FR...

MySQL-Datenbank-Master-Slave-Replikation und Lese-/Schreibtrennung

Inhaltsverzeichnis 1. Master-Slave-Replikation Ma...

Verwenden von Openlayer in Vue, um einen Ladeanimationseffekt zu realisieren

Hinweis: Sie können keine bereichsbezogenen Anima...

Tutorial zur Konfiguration des Nginx/Httpd-Reverseproxys für Tomcat

Im vorherigen Blog erfuhren wir die Verwendung un...