Beispiele für die Verwendung von „Provide“ und „Inject“ in Vue2.0/3.0

Beispiele für die Verwendung von „Provide“ und „Inject“ in Vue2.0/3.0

1. Was ist der Nutzen von Provide/Inject?

Die häufig verwendete Kommunikationsmethode zwischen übergeordneten und untergeordneten Komponenten besteht darin, dass die übergeordnete Komponente die an die untergeordnete Komponente zu übergebenden Daten bindet und die untergeordnete Komponente sie über das Props-Attribut empfängt. Sobald die Komponentenhierarchie größer wird, ist es sehr mühsam, Werte auf diese Weise Ebene für Ebene zu übergeben, und die Lesbarkeit des Codes ist nicht hoch, was für die spätere Wartung unpraktisch ist.

Vue bietet die Funktionen „Bieten“ und „Injizieren“, um uns bei der Lösung mehrstufiger verschachtelter Kommunikationsprobleme zu helfen. Geben Sie in „Provide“ die Daten an, die an die untergeordneten Komponenten übergeben werden sollen. Die untergeordneten Komponenten fügen dann die von der übergeordneten Komponente über „Inject“ übergebenen Daten ein.

Anwendungsszenario: Da Vue über die Eigenschaft $parent verfügt, können untergeordnete Komponenten auf übergeordnete Komponenten zugreifen. Für Enkelkomponenten ist es jedoch schwierig, auf Vorgängerkomponenten zuzugreifen. Über Provide/Inject können Sie problemlos auf die Daten von Vorgängerkomponenten über verschiedene Ebenen hinweg zugreifen.

2. So verwenden Sie provide/inject

provide: ist ein Objekt/eine Funktion, die ein Objekt zurückgibt.

Darin befinden sich Attribute und Attributwerte.

Hinweis: Die Bereitstellung der Nachkommenschicht deckt den Attributwert des gleichen Schlüssels in der Bereitstellung der Großelternschicht ab.

einfügen: ein Array von Zeichenfolgen oder ein Objekt.

Der Attributwert kann ein Objekt sein, einschließlich der Standardwerte „von“ und „Standard“. „Von“ ist der Schlüssel (Zeichenfolge oder Symbol), der zum Suchen im verfügbaren Injektionsinhalt verwendet wird. Dies bedeutet, dass der Großvater-Mehrschichtanbieter viele Daten bereitstellt, und das „von“-Attribut gibt an, welcher Schlüssel verwendet werden soll.

default gibt den Standardwert an.

Spezifische Verwendung:

Übergeordnete Komponente

<Vorlage>
  <div>
 
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Komponenten:
    MergeTipDialog,
    BreakNetTipp
  },
  Daten () {
    zurückkehren {
      isShow: false,
      isRouterAlive: true
  },

// Die von der übergeordneten Komponente zurückgegebenen und an die untergeordnete Komponente zu übergebenden Daten können eine Funktion oder die Daten in data provide () sein {
    zurückkehren {
      neu laden: dies.neu laden istAnzeigen: dies.istAnzeigen
    }
  },
  Methoden: {
    neu laden () {
      this.isRouterAlive = false
      dies.$nextTick(() => {
        this.isRouterAlive = true
      })
    }
  }
}
</Skript>

Nachkommen

<Vorlage>
  <Popup-Zuweisung
    :id="Ich würde"
    @success="ErfolgsHandle"
  >
    <div Klasse="confirm-d-tit"><span Klasse="gray-small-btn">{{ Name }}</span></div>
    <strong>Wird zugewiesen an</strong>
    <a
      slot="Referenz"
      Klasse="unite-btn"
    >
      Abtretung
  </popup-assign>
</Vorlage>
<Skript>
PopupAssign aus '../PopupAssign' importieren
Standard exportieren {
//Referenz Vue Reload-Methode Inhalt isShow
  einfügen: ['neu laden','isShow'],
  Komponenten:
    PopupZuweisen
  },
Methoden: {
    asynchroner Erfolgshandle () {
      dies.neu laden()
    }
  }
}
</Skript>

Vue3.0-Nutzung

Übergeordnete Komponente

Unterkomponenten

Zusammenfassen

Dies ist das Ende dieses Artikels über die Verwendung von Provide und Inject in vue2.0/3.0. Weitere relevante Inhalte zur Verwendung von Provide und Inject in vue finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zur dynamischen Aktualisierung der Tabelle mithilfe von vue2.0 in Kombination mit dem DataTable-Plugin
  • Vergleich der Vorteile von vue3 und vue2
  • Vue2.x konfiguriert Routing-Navigations-Guards, um die Benutzeranmeldung und -beendigung zu implementieren.
  • Detaillierte Untersuchung von vue2.x - Erklärung der h-Funktion
  • Vue2.x-Reaktionsfähigkeit – einfache Erklärung und Beispiele
  • Zusammenfassung der Vorteile von Vue3 gegenüber Vue2
  • Vue2-Implementierungen bieten Injection für Reaktionsfähigkeit
  • Eine kurze Analyse des Reaktionsprinzips und der Unterschiede von Vue2.0/3.0
  • vue2.x-Konfiguration von vue.config.js zur Projektoptimierung
  • Beispiel für handschriftliches Vue2.0-Daten-Hijacking
  • Vue2.x - Beispiel für die Verwendung von Anti-Shake und Throttling
  • Der Quellcode zeigt, warum Vue2 Daten und Methoden direkt abrufen kann

<<:  Eine bunte Katze unter Linux

>>:  Beispiel-Tutorial zum Zusammenführen und Teilen von MySQL nach angegebenen Zeichen

Artikel empfehlen

So lösen Sie das Problem „Nginx 503-Dienst vorübergehend nicht verfügbar“

In letzter Zeit tritt nach dem Aktualisieren der ...

So fügen Sie Batchdaten unter Node.js in eine MySQL-Datenbank ein

Im Projekt (nodejs) müssen mehrere Daten gleichze...

Das Vue-Projekt realisiert Anmelde- und Registrierungseffekte

In diesem Artikelbeispiel wird der spezifische Co...

Natives JS zur Implementierung eines atmenden Karussells

Heute zeige ich Ihnen ein mit nativem JS implemen...

Lösung für den Fehler bei der MySQL-Remoteverbindung

Ich bin schon einmal auf das Problem gestoßen, da...

So laden Sie die Kamera in HTML

Wirkungsdiagramm: Gesamtwirkung: Video wird gelad...

el-table in vue realisiert automatischen Deckeneffekt (unterstützt feste)

Inhaltsverzeichnis Vorwort Umsetzungsideen Wirkun...

js zur Realisierung eines einfachen Werbefensters

In diesem Artikel wird der spezifische Code von j...

Beispiel für die Validierung eines JavaScript-Formulars

HTML-Formulare werden häufig verwendet, um Benutz...

Analyse von MySQL-Parallelitätsproblemen und -Lösungen

Inhaltsverzeichnis 1. Hintergrund 2. Langsame Abf...

Detaillierte Erklärung zur Verwendung der Vue h-Funktion

Inhaltsverzeichnis 1. Verstehen 2. Verwendung 1. ...

Lösen Sie das Problem, dass Docker das MySQL-Image zu langsam zieht

Nachdem wir eine halbe Stunde lang versucht hatte...