Heim Web-Frontend View.js Tipps zur Verwendung von Provide und Inject zum Übergeben von Methoden und Ereignissen über Komponenten in Vue

Tipps zur Verwendung von Provide und Inject zum Übergeben von Methoden und Ereignissen über Komponenten in Vue

Jun 25, 2023 am 11:02 AM
vue provide inject

Vue ist ein hervorragendes Open-Source-Frontend-Framework. Es bietet die Möglichkeit, schnell Benutzeroberflächen zu erstellen, den Entwicklungsprozess zu vereinfachen und die Effizienz der Produktentwicklung zu verbessern. Vue bietet eine Vielzahl von Möglichkeiten zur Datenübergabe, darunter Props, Emit, $emit, Vuex usw. Die Verwendung von Provide und Inject auf Komponentenebene ist eine flexiblere Möglichkeit, die uns dabei helfen kann, Methoden und Ereignisse komponentenübergreifend weiterzugeben. In diesem Artikel konzentrieren wir uns auf die Erläuterung der Techniken zur Verwendung von Provide und Inject in Vue, um Methoden und Ereignisse komponentenübergreifend zu übergeben.

  1. Was sind „Versorgen“ und „Injizieren“?

provide und inject sind erweiterte Komponentenbereitstellungsmethoden in Vue, die es übergeordneten Komponenten ermöglichen, Daten an untergeordnete Komponenten weiterzugeben, die weit von ihnen entfernt sind. Wir können Daten für alle Nachkommenkomponenten zugänglich machen, indem wir sie in der Vorgängerkomponente bereitstellen.

  1. Wie verwende ich Provide und Inject?

Lassen Sie uns zunächst anhand des Beispiels der Bindung derselben Methode an mehrere Komponenten erklären, wie Provide und Inject verwendet werden.

2.1 Vorgängerkomponenten stellen Methoden bereit

In Vorgängerkomponenten definieren wir eine Methode und stellen sie allen Nachkommenkomponenten zur Verfügung. Der Code lautet wie folgt:

import { provide } from 'vue'

export default {
  created() {
    const commonMethod = () => { alert('hello world') }
    provide('commonMethod', commonMethod)
  }
}
Nach dem Login kopieren

Hier verwenden wir die Provide-Methode, um allen Nachkommenkomponenten die commonMethod-Methode bereitzustellen. Der erste Parameter der Bereitstellungsmethode ist der Schlüsselname der bereitgestellten Daten und der zweite Parameter ist der spezifische Inhalt der bereitgestellten Daten.

2.2 Nachkommenkomponenten erhalten Methoden

Nachdem wir die bereitgestellte Methode erhalten haben, können wir sie in allen Nachkommenkomponenten verwenden. Der Code lautet wie folgt:

import { inject } from 'vue'

export default {
  created() {
    const commonMethod = inject('commonMethod')
    this.$commonMethod = commonMethod
  }
}
Nach dem Login kopieren

Hier verwenden wir die Inject-Methode, um die CommonMethod-Methode zu erhalten. Der Parameter der Injektionsmethode ist der Schlüsselname der bereitgestellten Daten und gibt den Wert der bereitgestellten Daten zurück. Im erstellten Lebenszyklus binden wir die commonMethod-Methode in die Variable $commonMethod der Instanz zur Verwendung in der Komponente.

  1. Wie setzt man Passing-Events um?

Bei der komponentenübergreifenden Bereitstellung von Ereignissen müssen wir Provide und Inject verwenden. Im Folgenden nehmen wir als Beispiel das Ereignis, bei dem auf eine Schaltfläche geklickt wird, um eine untergeordnete Komponente auszulösen.

3.1 Vorfahrenkomponenten stellen Ereignisse bereit

In der Vorfahrenkomponente führen wir eine Ereignisklasse ein und stellen sie allen Nachkommenkomponenten zur Verfügung. Der Code lautet wie folgt:

import { provide } from 'vue'
import { EventEmitter } from 'events'

export default {
  created() {
    const emitter = new EventEmitter()
    provide('emitter', emitter)
  }
}
Nach dem Login kopieren

Hier erstellen wir eine neue EventEmitter-Instanz in der Vorgängerkomponente und stellen sie der Nachkommenkomponente zur Verfügung.

3.2 Nachkommende Komponenten hören auf Ereignisse.

In der nachkommenden Komponente verwenden wir die Injektionsmethode, um das bereitgestellte Ereignis abzurufen und es abzuhören, damit die entsprechende Logik ausgeführt werden kann, nachdem das Ereignis ausgelöst wurde. Der Code lautet wie folgt:

import { inject } from 'vue'

export default {
  created() {
    const emitter = inject('emitter')
    emitter.on('event', () => {
      console.log('emit event')
    })
  }
}
Nach dem Login kopieren

Hier verwenden wir die Injektionsmethode, um den bereitgestellten Ereignisemitter zu empfangen und das Ereignis „Ereignis“ im erstellten Lebenszyklus abzuhören. Wenn das Ereignis ausgelöst wird, führen wir die entsprechende Logik aus.

3.3 Auslösen von Ereignissen

Beim Auslösen eines Ereignisses müssen wir den Emitter holen und ihn auslösen. Der Code lautet wie folgt:

import { inject } from 'vue'

export default {
  methods: {
    emitEvent() {
      const emitter = inject('emitter')
      emitter.emit('event')
    }
  }
}
Nach dem Login kopieren

Hier haben wir die inject-Methode verwendet, um den bereitgestellten Ereignisemitter abzurufen, und das Ereignis „event“ in der emitEvent-Methode ausgelöst.

  1. Zusammenfassung

In der Einleitung dieses Artikels haben wir gelernt, wie wir Provide und Inject verwenden, um die komponentenübergreifende Bereitstellung von Methoden und Ereignissen zu implementieren. Durch die Verwendung von Provide und Inject auf der Komponentenebene von Vue können wir Daten und Ereignisse flexibler weitergeben und so die Komplexität von Vorlagen oder Requisiten effektiv reduzieren. Gleichzeitig bieten Provide und Inject auch ähnliche Funktionen wie DI (Dependency Injection), wodurch das Architekturdesign von Vue skalierbarer und wartbarer wird.

Das obige ist der detaillierte Inhalt vonTipps zur Verwendung von Provide und Inject zum Übergeben von Methoden und Ereignissen über Komponenten in Vue. 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 Artikel -Tags

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 verwenden Sie Echarts in Vue So verwenden Sie Echarts in Vue May 09, 2024 pm 04:24 PM

So verwenden Sie Echarts in Vue

Die Rolle des Exportstandards in Vue Die Rolle des Exportstandards in Vue May 09, 2024 pm 06:48 PM

Die Rolle des Exportstandards in Vue

So verwenden Sie die Kartenfunktion in Vue So verwenden Sie die Kartenfunktion in Vue May 09, 2024 pm 06:54 PM

So verwenden Sie die Kartenfunktion in Vue

Der Unterschied zwischen Event und $event in Vue Der Unterschied zwischen Event und $event in Vue May 08, 2024 pm 04:42 PM

Der Unterschied zwischen Event und $event in Vue

Der Unterschied zwischen Export und Exportstandard in Vue Der Unterschied zwischen Export und Exportstandard in Vue May 08, 2024 pm 05:27 PM

Der Unterschied zwischen Export und Exportstandard in Vue

Die Rolle von Onmount in Vue Die Rolle von Onmount in Vue May 09, 2024 pm 02:51 PM

Die Rolle von Onmount in Vue

Onmount in Vue entspricht dem Lebenszyklus der Reaktion Onmount in Vue entspricht dem Lebenszyklus der Reaktion May 09, 2024 pm 01:42 PM

Onmount in Vue entspricht dem Lebenszyklus der Reaktion

Was sind Hooks in Vue Was sind Hooks in Vue May 09, 2024 pm 06:33 PM

Was sind Hooks in Vue

See all articles