Heim Web-Frontend View.js So verwenden Sie Provide/Inject in Vue, um Daten über mehrere Ebenen von Vorfahren und Nachkommen zu übergeben

So verwenden Sie Provide/Inject in Vue, um Daten über mehrere Ebenen von Vorfahren und Nachkommen zu übergeben

Jun 11, 2023 am 11:45 AM
vue 数据传递 provide/inject

Vue bietet eine effiziente Datenübertragungsmethode – Bereitstellen/Injizieren, die uns dabei helfen kann, Daten zwischen Vorfahren und Nachkommen über mehrere Ebenen hinweg zu übertragen und so eine umständliche Übertragung von Requisiten zu vermeiden. In diesem Artikel wird erläutert, wie Sie mit Provide/Inject in Vue eine Datenübertragung über mehrere Schichten von Vorfahren und Nachkommen hinweg erreichen.

1. Provide und inject

provide und inject sind neue APIs nach der Vue2.2.0-Version, die zur Realisierung der Datenübertragung über mehrschichtige Komponenten hinweg verwendet werden. Provide ermöglicht es einer Komponente, eine Abhängigkeit in alle ihre Nachkommenkomponenten einzufügen, und Inject kann diese Abhängigkeit empfangen und verwenden.

provide und inject werden hauptsächlich für Plug-In-/Komponentenbibliotheken höherer Ordnung wie Element-UI verwendet. In element-ui hängen alle Komponenten von einer Komponentenbibliothek der obersten Ebene ab. Diese Komponentenbibliothek muss allen Unterkomponenten Bereitstellung und Injektion ermöglichen, um diese Daten zu übertragen.

2. Die Verwendung von Provide und Inject

Durch die Verwendung von Provide in einer Komponente können wir einen Injektionspunkt für untergeordnete Komponenten bereitstellen, damit diese die von der übergeordneten Komponente bereitgestellten Daten erhalten können. Zum Beispiel:

// 父组件
export default {
  provide () {
    return {
      theme: this.theme
    }
  },
  data () {
    return {
      theme: 'light'
    }
  }
}

// 子组件
export default {
  inject: ['theme'],
  mounted () {
    console.log(this.theme) // light
  }
}
Nach dem Login kopieren

Im obigen Beispiel verwendet die übergeordnete Komponente „prove“, um Daten bereitzustellen und das Datenobjekt für untergeordnete Komponenten verfügbar zu machen. Die Daten sind hier ein Zeichenfolgentyp. Die Möglichkeit zur Bereitstellung besteht in der Verwendung der Bereitstellungsfunktion. Laut der offiziellen Dokumentation von Bereitstellung ist der Rückgabewert dieser Funktion ein Objekt. Der Schlüssel im Objekt kann beim Einfügen von Nachkommen verwendet werden, und der Wert sind die einzufügenden Daten, bei denen es sich um eine Variable, eine Funktion usw. handeln kann.

Durch die Injektion in untergeordnete Komponenten können wir Daten empfangen, die von übergeordneten Komponenten bereitgestellt werden. Zum Beispiel:

export default {
  inject: ['theme'],
  mounted () {
    console.log(this.theme) // light
  }
}
Nach dem Login kopieren

Im Beispiel empfängt die untergeordnete Komponente Daten mithilfe der Injektionsoption in den Komponentenoptionen. „inject: [key]“, wobei key der Schlüssel des Datenobjekts ist, das in der übergeordneten Komponente verfügbar gemacht werden soll. Der Schlüssel hier stimmt mit dem überein, der von der Bereitstellungsfunktion bereitgestellt wird. Es ist zu beachten, dass die Abhängigkeit standardmäßig im übergeordneten Element gesucht wird. Wenn Sie nicht im übergeordneten Element suchen möchten, müssen Sie srcoll im inject auf „false“ setzen. Nur von der übergeordneten Komponente bereitgestellte Daten können von der untergeordneten Komponente eingefügt werden.

3. Hinweise zu Provide und Inject

  1. Die von Provide injizierten Daten können in untergeordneten Komponenten verwendet werden, jedoch nicht in der übergeordneten Komponente.

Im Mechanismus von Provide und Inject können die von Provide bereitgestellten Daten durch Inject in untergeordnete Komponenten eingefügt werden. Wenn inject jedoch auch in der übergeordneten Komponente zum Empfangen von Daten verwendet wird, wird dies nicht wirksam, da inject standardmäßig in der übergeordneten Komponente nach den bereitgestellten Daten sucht und Vue in der übergeordneten Komponente nicht nach einer Konsistenz mit der untergeordneten Komponente sucht Komponenten bereitstellen.

  1. Verwenden Sie in Provide keine Pfeilfunktionen, um Daten zurückzugeben.

provide muss ein Objekt zurückgeben, um Daten bereitzustellen, daher verwenden wir häufig Pfeilfunktionen, um ein Objekt zurückzugeben, zum Beispiel:

export default {
  provide: () => ({
    theme: 'light'
  })
}
Nach dem Login kopieren

In den meisten Fällen verwenden wir jedoch keine Pfeilfunktionen, um Daten bereitzustellen, da Pfeilfunktionen dies nicht tun habe diesen Punkt. Bei Verwendung von Pfeilfunktionen in Provide erhält es nicht den richtigen Kontext und reagiert nicht auf Datenänderungen.

  1. Es wird nicht empfohlen, in Provide und Inject Namen zu verwenden, die mit dem $-Symbol beginnen.

Das Benennen, das mit dem $-Symbol in Provide und Inject beginnt, ist eine Benennungsregel, die Vue vorbehalten ist. Wir empfehlen daher nicht, das $-Symbol zum Starten der bereitgestellten Daten zu verwenden. Die Verwendung von Namen, die mit dem $-Symbol in „prove“ beginnen, kann zu Problemen führen, während die Verwendung von Namen, die mit dem $-Symbol in „inject“ beginnen, ignoriert wird.

4. Nutzungsszenarien

Der Hauptzweck von Provide/Inject besteht darin, eine Komponentenbibliothek über Komponentenebenen hinweg aufzubauen. Insbesondere teilen mehrere Komponenten einige der gleichen Informationen oder den gleichen Status, wie z. B. Designfarbe, Sprache usw.

Im tatsächlichen Entwicklungsprozess kann man sich leicht ein Szenario vorstellen: In einer App oder einer Seite können viele ähnliche Komponenten vorhanden sein, die denselben Status oder dieselbe Methode verwenden müssen. Hierarchien vermitteln diese gemeinsamen Informationen und den Status und vermeiden so redundanten Code und Doppelarbeit.

Gleichzeitig können wir Mixins auch verwenden, um Codeduplizierung und Coderedundanz zu vermeiden, wodurch unser Code elegant, sauber und leicht zu warten ist.

5. Zusammenfassung

Die Verwendung von Provide/Inject ist eine effiziente Datenübertragungsmethode, die uns dabei helfen kann, die Datenübertragung über mehrere Ebenen von Vorfahren und Nachkommen hinweg zu realisieren und den Einsatz von Requisiten zu reduzieren. Es ist jedoch zu beachten, dass bei der Verwendung von Provide/Inject einige Vorsichtsmaßnahmen zu beachten sind, um eine Beeinträchtigung der Leistung und Korrektheit der Komponente zu vermeiden. Gleichzeitig erfordert die tatsächliche Anwendung eine detaillierte Analyse der Szenarien und den sinnvollen Einsatz von Provide/Inject, Props oder Vuex für die Datenübertragung.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Provide/Inject in Vue, um Daten über mehrere Ebenen von Vorfahren und Nachkommen zu übergeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So fügen Sie Funktionen zu Schaltflächen für Vue hinzu So fügen Sie Funktionen zu Schaltflächen für Vue hinzu Apr 08, 2025 am 08:51 AM

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.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

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.

So verweisen Sie auf die JS -Datei mit Vue.js So verweisen Sie auf die JS -Datei mit Vue.js Apr 07, 2025 pm 11:27 PM

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.

So verwenden Sie Watch in Vue So verwenden Sie Watch in Vue Apr 07, 2025 pm 11:36 PM

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.

Was bedeutet VUE Multi-Page-Entwicklung? Was bedeutet VUE Multi-Page-Entwicklung? Apr 07, 2025 pm 11:57 PM

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.

So kehren Sie von Vue zur vorherigen Seite zurück So kehren Sie von Vue zur vorherigen Seite zurück Apr 07, 2025 pm 11:30 PM

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.

So fragen Sie die Version von Vue So fragen Sie die Version von Vue Apr 07, 2025 pm 11:24 PM

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.

So verwenden Sie Funktionsabfangweserven So verwenden Sie Funktionsabfangweserven Apr 08, 2025 am 06:51 AM

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.

See all articles