Heim >Web-Frontend >View.js >So verwenden Sie Provide/Inject in Vue, um eine nicht reagierende Datenübertragung zwischen Vorgängerkomponenten und Nachkommenkomponenten zu implementieren

So verwenden Sie Provide/Inject in Vue, um eine nicht reagierende Datenübertragung zwischen Vorgängerkomponenten und Nachkommenkomponenten zu implementieren

王林
王林Original
2023-06-11 10:35:121597Durchsuche

Vue bietet zwei High-Level-APIs: Provide und Inject, die Entwicklern dabei helfen können, eine nicht reagierende Datenübertragung zwischen Vorgängerkomponenten und Nachkommenkomponenten durchzuführen. Bei diesen Daten kann es sich nicht nur um Grundwerte, Arrays und Objekte handeln, sondern auch um Funktionen und Klassen.

In Vue wird die Datenübertragung zwischen Komponenten im Allgemeinen in zwei Arten unterteilt: reaktionsfähige Datenübertragung zwischen übergeordneten und untergeordneten Komponenten sowie zwischen Geschwisterkomponenten. Manchmal müssen wir jedoch einige nicht reagierende Daten zwischen Vorfahren und Nachkommen weitergeben. Zu diesem Zeitpunkt ist die Verwendung von Provide/Inject erforderlich.

provide und inject wurden in Vue2.2.0 eingeführt, um das Problem der Datenübertragung zwischen ebenenübergreifenden Komponenten zu lösen. Wenn wir bisher Daten zwischen übergeordneten und untergeordneten Komponenten übertragen wollten, implementierten wir dies normalerweise über Requisiten und Ereignisse. Wenn wir jedoch eine nicht reagierende Datenübertragung zwischen Vorgängerkomponenten und Nachkommenkomponenten benötigen, sind Requisiten und Ereignisse derzeit nicht geeignet. Wir müssen Provide und Inject verwenden.

Schauen wir uns nun ein Beispiel an:

<grand-parent>
    <parent>
        <child></child>
    </parent>
</grand-parent>

In diesem Beispiel ist der Großelternteil die Vorgängerkomponente, der Elternteil die untergeordnete Komponente und das Kind die Nachkommenkomponente. Wir können Provide verwenden, um einige Daten im Großelternteil bereitzustellen, und dann Inject im Kind verwenden, um auf diese Daten zuzugreifen.

Zuerst müssen wir Daten mithilfe von Provide in der übergeordneten Komponente bereitstellen:

provide: {
    someData: '这是一些数据'
}

Hier stellen wir nicht reagierende Daten mit dem Namen someData bereit.

Dann verwenden Sie inject in der untergeordneten Komponente, um auf diese Daten zuzugreifen:

inject: ['someData'],

Hier verwenden wir inject, um someData-Daten einzufügen, damit wir auf someData in der untergeordneten Komponente zugreifen können.

Neben einfachen Datentypen können wir auch Provide verwenden, um einige Funktionen und Klassen bereitzustellen:

provide: {
    someMethod: this.doSomething,
    someClass: new MyClass()
}

In diesem Beispiel stellen wir nicht nur eine Methode, sondern auch eine Instanz der Klasse bereit. In untergeordneten Komponenten können wir inject verwenden, um auf diese Daten zuzugreifen:

inject: ['someMethod', 'someClass'],

Hier verwenden wir inject, um someMethod und someClass zu injizieren, damit wir in untergeordneten Komponenten auf diese Daten zugreifen können.

Es ist zu beachten, dass Datenänderungen nicht berücksichtigt werden, da „Provide“ und „Inject“ nicht reagieren. Wenn wir eine reaktionsfähige Datenübertragung durchführen müssen, sollten wir Requisiten und Ereignisse verwenden.

Zusammenfassend lässt sich sagen, dass Provide und Inject sehr nützliche APIs in Vue sind, die uns dabei helfen können, eine nicht reagierende Datenübertragung zwischen Vorfahren und Nachkommen durchzuführen. Provide und inject sind eine gute Wahl, wenn wir einige nicht reagierende Daten übergeben müssen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Provide/Inject in Vue, um eine nicht reagierende Datenübertragung zwischen Vorgängerkomponenten und Nachkommenkomponenten zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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