Synchronisierungsmethode für Vue-Listendaten
Vue ist ein fortschrittliches Framework zum Erstellen von Benutzeroberflächen und gehört derzeit zu den beliebtesten Frameworks in der Frontend-Entwicklung. Bei der Entwicklung von Vue ist die Synchronisierung von Listendaten ein relativ komplexes Thema. In diesem Artikel werden einige Methoden zur Synchronisierung von Vue-Listendaten vorgestellt.
1. Datenübertragung zwischen Komponenten
In Vue sind Komponenten die Grundeinheiten der Code-Wiederverwendung und der logischen Organisation, und die Datenübertragung zwischen Komponenten erfordert die Verwendung von Requisiteneigenschaften und Emittieren Ereignisse. Bei der Synchronisierung von Listendaten übergibt die übergeordnete Komponente die Daten über das Props-Attribut an die untergeordnete Komponente. Nachdem die untergeordnete Komponente die Daten geändert hat, übergibt sie die Daten über das Emissionsereignis an die übergeordnete Komponente und realisiert so die Synchronisierung der Liste Daten.
Bei der Verwendung von Props-Attributen müssen Sie die folgenden Punkte beachten:
- Die von Props in der Komponente deklarierten Daten erlauben keine direkte Änderung durch Sub -Komponenten, um Datenverwechslungen zu vermeiden.
- Die übergeordnete Komponente bindet die Daten über die v-bind-Direktive an das props-Attribut, sodass sie in der untergeordneten Komponente verwendet werden können.
- Die untergeordnete Komponente löst das von der übergeordneten Komponente registrierte Ereignis über die Methode $emit aus und übergibt die geänderten Daten.
Der Beispielcode lautet wie folgt:
Übergeordnete Komponente:
<template> <div> <child-component :list="list" @change="handleChange"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { data() { return { list: [ { id: 1, name: 'Vue' }, { id: 2, name: 'React' }, { id: 3, name: 'Angular' } ] }; }, methods: { handleChange(newList) { this.list = newList; } }, components: { ChildComponent } }; </script>
Untergeordnete Komponente:
<template> <div> <ul> <li v-for="item in list" :key="item.id"> <input type="text" v-model="item.name" @change="handleInputChange(item)"> </li> </ul> </div> </template> <script> export default { props: ['list'], methods: { handleInputChange(item) { this.$emit('change', this.list); } } }; </script>
- Sie müssen die Vuex-Bibliothek in die Vue-Anwendung einführen und die Store-Instanz registrieren . Die Speicherung der Listendaten sollte im Vuex-Zustand erfolgen. Komponenten können über Vuex auf Daten im Status zugreifen und diese ändern, um eine Synchronisierung zu erreichen.
import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { list: [ { id: 1, name: 'Vue' }, { id: 2, name: 'React' }, { id: 3, name: 'Angular' } ] }, mutations: { updateList(state, newList) { state.list = newList; } } });
<template> <div> <child-component></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent } }; </script>
<template> <div> <ul> <li v-for="item in list" :key="item.id"> <input type="text" v-model="item.name" @change="handleInputChange(item)"> </li> </ul> </div> </template> <script> import { mapState, mapMutations } from 'vuex'; export default { computed: mapState(['list']), methods: { ...mapMutations(['updateList']), handleInputChange(item) { this.updateList(this.list); } } }; </script>
Im obigen Code ist das Listenarray im Status definiert. Die übergeordnete Komponente übergibt keine Daten mehr an die untergeordnete Komponente über die Funktion „mapState“ und rendert die Listendaten. Wenn sich das Eingabefeld in der Unterkomponente ändert, werden die neuen Listendaten in Mutationen über die Funktion „mapMutations“ an die Methode „updateList“ übermittelt, wodurch die Daten im Status aktualisiert werden.
3. $emit und Bereitstellung/Injektion
In der Vue2.2.0-Version wurde über diese API eine neue API zum Bereitstellen und Injizieren von Daten hinzugefügt , Sie können die Fähigkeit implementieren, Daten dynamisch zwischen Komponenten einzufügen. Bei der Synchronisierung von Listendaten können Datenfreigabe und -synchronisierung durch Bereitstellen/Injizieren erreicht werden.
Bei der Verwendung von Provide/InjectAPI müssen Sie die folgenden Punkte beachten:
provide definiert die Daten, die geteilt werden müssen, und inject deklariert die Daten, die injiziert werden müssen.- Sie können die Pfeilfunktion in Provide verwenden, um Daten dynamisch zu binden, um die Daten dynamisch zu aktualisieren, nachdem die Daten aktualisiert wurden.
- Es wird nicht empfohlen, reaktive Daten in der Bereitstellung zu verwenden, da dies zu unvorhersehbaren Datenaktualisierungen führen kann. Der Beispielcode lautet wie folgt:
Übergeordnete Komponente:
<template> <div> <child-component></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { provide() { return { list: this.list, updateList: (newList) => { this.list = newList; } } }, data() { return { list: [ { id: 1, name: 'Vue' }, { id: 2, name: 'React' }, { id: 3, name: 'Angular' } ] }; }, components: { ChildComponent } }; </script>
Untergeordnete Komponente:
<template> <div> <ul> <li v-for="item in list" :key="item.id"> <input type="text" v-model="item.name" @change="handleInputChange(item)"> </li> </ul> </div> </template> <script> export default { inject: ['list', 'updateList'], methods: { handleInputChange(item) { this.updateList(this.list); } } }; </script>
Das obige ist der detaillierte Inhalt vonSynchronisierungsmethode für Vue-Listendaten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

In Artikel werden die Verbindungskomponenten an Redux Store mit Connect () verbinden, wobei MapStatetoprops, MapDispatchtoprops und Leistungsauswirkungen erläutert werden.

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Der Artikel erörtert die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten bei React, wobei sich auf Aspekte wie Vorhersehbarkeit, Leistung und Anwendungsfälle konzentriert. Es rät zu Faktoren, die bei der Auswahl zwischen ihnen berücksichtigt werden müssen.

React kombiniert JSX und HTML, um die Benutzererfahrung zu verbessern. 1) JSX bettet HTML ein, um die Entwicklung intuitiver zu gestalten. 2) Der virtuelle DOM -Mechanismus optimiert die Leistung und reduziert den DOM -Betrieb. 3) Komponentenbasierte Verwaltungs-Benutzeroberfläche zur Verbesserung der Wartbarkeit. 4) Staatsmanagement und Ereignisverarbeitung verbessern die Interaktivität.

Das Reaktivitätssystem von VUE 2 kämpft mit der Einstellung der Direktarray -Index, der Längenänderung und der Addition/Löschung der Objekteigenschaften. Entwickler können die Mutationsmethoden von VUE und VUE.SET () verwenden, um die Reaktivität sicherzustellen.

In dem Artikel wird das Definieren von Routen im React -Router unter Verwendung der & lt; Route & gt; Komponente, Abdeckung von Requisiten wie Pfad, Komponente, Rendern, Kindern, exakt und verschachteltes Routing.
