


Bereitstellung und Injektion von Funktionen in Vue3: effiziente Datenübertragung zwischen Komponenten
Die Bereitstellungs- und Injektionsfunktionen in Vue3 sind zur bevorzugten Lösung für eine effiziente Datenübertragung zwischen Komponenten geworden. Sie verwenden einen neuen Mechanismus, der es untergeordneten Komponenten ermöglicht, Daten in Vorgängerkomponenten abzurufen und gleichzeitig Daten in Vorgängerkomponenten in übergeordneten Komponenten zu aktualisieren, was unbegrenzte Möglichkeiten für die Erstellung komplexer und flexibler Anwendungen bietet. In diesem Artikel werden die Bereitstellungs- und Injektionsfunktionen in Vue3 ausführlich erläutert, um den Lesern ein besseres Verständnis ihrer Arbeitsprinzipien und Verwendung zu ermöglichen.
- Was sind Bereitstellungs- und Injektionsfunktionen?
Die Provide- und Inject-Funktionen sind neue Funktionen in Vue3. Sie bieten eine andere Datenübertragungsmethode als Props und $emit. Die Bereitstellungsfunktion wird zum Bereitstellen von Daten und die Injektionsfunktion zum Einfügen von Daten verwendet. Die Bereitstellungsfunktion empfängt ein Objekt als Parameter, das die Daten enthält, die der untergeordneten Komponente bereitgestellt werden müssen. Die Injektionsfunktion empfängt ein Array oder Objekt als Parameter. Dieses Array oder Objekt enthält die Daten, die von der Vorgängerkomponente eingefügt werden müssen. Es ist zu beachten, dass die Funktionen „Provide“ und „Inject“ nur Daten zwischen derselben Vorgängerkomponente und untergeordneten Komponenten und nicht zwischen Komponenten übertragen können.
- So funktionieren die Bereitstellungs- und Injektionsfunktionen
In Vue3 verwenden die Bereitstellungs- und Injektionsfunktionen einen neuen Mechanismus, um die Datenübertragung zu erreichen. Dieser Mechanismus basiert auf der benutzerdefinierten Renderfunktion von Vue, die die Verwendung der neuen Kontext-API zum Bereitstellen und Einfügen von Daten ermöglicht.
In der Bereitstellungsfunktion können wir Daten bereitstellen, indem wir das Bereitstellungsattribut festlegen, zum Beispiel:
const app = createApp({ provide: { data: 'this is data' } })
In diesem Beispiel stellen wir Daten in der Stammkomponente mit dem Namen Daten bereit und ihr Wert ist „Dies sind Daten“. Als nächstes können wir die Inject-Funktion in der Unterkomponente verwenden, um diese Daten einzufügen:
const childComponent = { inject: ['data'], mounted() { console.log(this.data)//输出'this is data' } }
In der Unterkomponente injizieren wir Daten über das Inject-Attribut. Dieses Attribut muss den Namen der Daten enthalten, die injiziert werden müssen. Hier fügen wir den Namen der Daten ein. In der untergeordneten Komponente können wir wie Requisiten auf die injizierten Daten zugreifen.
Es ist zu beachten, dass die injizierten Daten undefiniert sind, wenn die Injektionsfunktion in einer untergeordneten Komponente verwendet wird, die Bereitstellungsfunktion jedoch nicht die Daten bereitstellt, die injiziert werden müssen.
- So verwenden Sie die Provide- und Inject-Funktionen
Bei der Verwendung der Provide- und Inject-Funktionen müssen wir auf die folgenden Punkte achten:
(1) Die Provide- und Inject-Funktionen können nur zwischen demselben Vorfahren weitergegeben werden Komponente und untergeordnete Komponenten Daten können nicht über Komponenten hinweg weitergegeben werden.
(2) Die in der Bereitstellungsfunktion bereitgestellten Daten können beliebigen Typs sein, einschließlich Funktionen, Objekten usw.
(3) Die mit der Injektionsfunktion injizierten Daten sind standardmäßig schreibgeschützt, d. h. die Daten in der Vorgängerkomponente können in der untergeordneten Komponente nicht geändert werden. Wenn Sie die Daten in der Vorgängerkomponente ändern möchten, müssen Sie eine Methode in der Vorgängerkomponente bereitstellen und die Methode in der untergeordneten Komponente aufrufen, um die Daten zu aktualisieren.
(4) Bei der Implementierung der Bereitstellungs- und Injektionsfunktionen können wir den Symboltyp zum Bereitstellen oder Einfügen von Daten verwenden, wodurch verhindert werden kann, dass die Daten versehentlich geändert werden.
(5) Wenn wir Provide zum Bereitstellen von Daten verwenden, können wir die Ref- oder Reactive-Funktion in der Setup-Funktion verwenden, um reaktionsfähige Daten zu erstellen, sodass die Daten direkt in der Unterkomponente verwendet werden können und automatisch auf Datenänderungen reagiert werden können.
Das Folgende ist ein vollständiger Anwendungsfall, der eine einfache TodoList implementiert und die Bereitstellungs- und Injektionsfunktionen zum Übertragen von Daten verwendet:
const todoListProvide = { todos: ref([ { id: 1, text: 'todo 1', done: false }, { id: 2, text: 'todo 2', done: true }, { id: 3, text: 'todo 3', done: false } ]), addTodo (text) { this.todos.push({ id: this.todos.length + 1, text: text, done: false }) } } const todoItemInject = ['todos'] const TodoItem = { inject: todoItemInject, props: { todo: { type: Object, required: true } }, methods: { toggleTodo () { this.todo.done = !this.todo.done } }, template: ` <li> {{ todo.text }} <button @click="toggleTodo">{{ todo.done ? 'Undo' : 'Done' }}</button> </li> ` } const TodoList = { provide: todoListProvide, components: { TodoItem }, setup() { const newTodo = ref('') const addTodo = () => { if (newTodo.value.trim() !== '') { todoListProvide.addTodo.call(todoListProvide, newTodo.value) newTodo.value = '' } } return { newTodo, addTodo } }, template: ` <div> <ul> <todo-item v-for="todo in todos" :key="todo.id" :todo="todo"/> </ul> <div> <input type="text" v-model="newTodo"> <button @click="addTodo">Add Todo</button> </div> </div> ` } createApp({ components: { TodoList }, template: ` <todo-list></todo-list> ` }).mount('#app')
In diesem Fall definieren wir eine TodoList-Komponente und verwenden sie in dieser Komponente. Die Bereitstellungsfunktion stellt zwei Daten bereit für die todos- und addTodo-Methoden. Unter diesen ist todos ein reaktionsfähiges Array, das zum Speichern aller To-do-Informationen verwendet wird, und die addTodo-Methode wird zum Hinzufügen neuer To-dos verwendet. In der Unterkomponente TodoItem verwenden wir die Funktion inject, um Aufgabendaten einzufügen, und verwenden das Attribut props, um die übergebenen Aufgabendaten zu empfangen. In dieser Komponente definieren wir die toggleTodo-Methode, um den erledigten Status in todo zu aktualisieren, und verwenden dann den todo-Text, die erledigten Attribute und die toggleTodo-Methode in der Vorlage. Schließlich erstellen wir eine Root-Komponente und fügen die TodoList zum Rendern in die Root-Komponente ein.
Durch die Demonstration dieses Falles können wir sehen, wie wir die Bereitstellungs- und Injektionsfunktionen verwenden, um eine effiziente Datenübertragung zwischen Komponenten zu erreichen. Unabhängig davon, ob wir einfache kleine Komponenten entwickeln oder komplexe und flexible Anwendungen erstellen, können wir mithilfe der Bereitstellungs- und Injektionsfunktionen Komponenten besser organisieren und die Entwicklungseffizienz verbessern.
Das obige ist der detaillierte Inhalt vonBereitstellung und Injektion von Funktionen in Vue3: effiziente Datenübertragung zwischen Komponenten. 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



Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

VUE Multi-Page-Entwicklung ist eine Möglichkeit, Anwendungen mithilfe des Vue.js-Frameworks zu erstellen, in dem die Anwendung in separate Seiten unterteilt ist: Code-Wartung: Die Aufteilung der Anwendung in mehrere Seiten kann das Verwalten und Wartungsbereich erleichtern. Modularität: Jede Seite kann als separates Modul für eine einfache Wiederverwendung und den Austausch verwendet werden. Einfaches Routing: Die Navigation zwischen Seiten kann durch einfache Routing -Konfiguration verwaltet werden. SEO -Optimierung: Jede Seite hat eine eigene URL, die SEO hilft.

VUE.JS hat vier Methoden, um zur vorherigen Seite zurückzukehren: $ router.go (-1) $ router.back () verwendet & lt; Router-Link to = & quot;/& quot; Komponentenfenster.history.back () und die Methodenauswahl hängt von der Szene ab.

Sie können die Vue -Version mit Vue Devtools abfragen, um die Registerkarte VUE in der Konsole des Browsers anzuzeigen. Verwenden Sie NPM, um den Befehl "npm list -g vue" auszuführen. Suchen Sie das Vue -Element im Objekt "Abhängigkeiten" der Datei package.json. Führen Sie für Vue -CLI -Projekte den Befehl "Vue --version" aus. Überprüfen Sie die Versionsinformationen im & lt; Skript & gt; Tag in der HTML -Datei, die sich auf die VUE -Datei bezieht.

Funktionsabfangen in VUE ist eine Technik, mit der die Häufigkeit, mit der eine Funktion eingerufen wird, innerhalb eines bestimmten Zeitraums aufgerufen wird und Leistungsprobleme verhindern. Die Implementierungsmethode lautet: Importieren Sie die Lodash -Bibliothek: importieren {dunounce} aus 'lodash'; Verwenden Sie die Dabounce -Funktion, um eine Intercept -Funktion zu erstellen: const dabouncedFunction = dunounce (() = & gt; { / logical /}, 500); Rufen Sie die Abfangfunktion auf und die Steuerfunktion wird höchstens einmal in 500 Millisekunden aufgerufen.
