Eine kurze Diskussion über den Vater-Sohn-Werttransfer in Vue3

Eine kurze Diskussion über den Vater-Sohn-Werttransfer in Vue3

Vom Vater zum Sohn:

1. Übergeben Sie im Unterkomponenten-Tag der übergeordneten Komponente: den an die Unterkomponente übergebenen Datennamen = „zu übergebende Daten“

Hier zu Ihrer Information definiere ich die Daten in der übergeordneten Komponente wie folgt: fatherData ,

Die Daten, die die untergeordnete Komponente empfangen muss, werden wie folgt definiert: sonData.

// Übergeordnete Komponente <template>
  <div Klasse="Über">
    {{vaterData}}
    <!-- Vom Vater zum Sohn-->
    <!-- 1. Übergeben Sie im Unterkomponenten-Tag der übergeordneten Komponente: den an die Unterkomponente übergebenen Datennamen = „zu übergebende Daten“ -->
    <Kinder :sonData="VaterData"></Kinder>
  </div>
</Vorlage>
 
<Skript>
Kinder aus „@/components/children“ importieren
importiere { defineComponent, reactive, toRefs } von "vue";
exportiere StandarddefiniereKomponente({
  Komponenten: {
    Kinder,
  },
Name:"Über",
aufstellen(){
  const state = reaktiv({
    VaterDaten: "hallo"
  })
  zurückkehren {
    …toRefs(Status)
  }
}
 
})
</Skript>

2. Unterkomponenten werden weiterhin über Requisiten empfangen und in Vorlagen verwendet

In den meisten Fällen werden die Daten von der übergeordneten Komponente an die untergeordnete Komponente übergeben und bestimmte Funktionen oder Anforderungsdaten werden basierend auf diesen Daten ausgeführt.

Im Setup-Hook kann der erste Parameter props auf die von der übergeordneten Komponente übergebenen Daten zugreifen. Anschließend werden die Daten in der Funktion über Folgendes verarbeitet: props. Der Name der von der übergeordneten Komponente übergebenen Daten.

Die Setup-Funktion erhält als ersten Parameter Props. Das Props-Objekt reagiert (unidirektionales übergeordnetes Element -> untergeordnetes Element). watchEffect oder watch beobachten Aktualisierungen der Props und reagieren darauf. Zerstören Sie das Requisitenobjekt nicht, da es dadurch weniger reaktionsfähig wird. Während der Entwicklung ist das Props-Objekt für den Userspace-Code unveränderlich und es wird eine Warnung ausgelöst, wenn der Benutzer versucht, Props zu ändern.

// Unterkomponente <template>
  <div Klasse="Kinder">
    <!-- 3. Verwendung in Unterkomponentenvorlagen-->
    {{sonData}}
  </div>
</Vorlage>
<Skript>
Standard exportieren {
Name:"Kinder",
// 2. Die Unterkomponente empfängt Props über props:["sonData"],
  setup(Eigenschaften){
    Funktion Kinderaber(){
      // props.sonData kann auf die von der übergeordneten Komponente übergebenen Daten zugreifen console.log(props.sonData);
    }
    zurückkehren {
      Kinderaber
    }
  }
}
</Skript>

Sohn zum Vater:

1. Die Unterkomponente löst das Ereignis über den zweiten Parameter des Setups, context.emit, aus, um eine Übertragung vom Kind zum Elternteil zu erreichen.

Kontext Kontextobjekt.

// Unterkomponente <template>
  <div Klasse="Kinder">
    {{sonData}}
    <!-- 1. Ereignis auslösen-->
    <button @click="childrenbut">Schaltfläche für untergeordnete Komponente</button>
  </div>
</Vorlage>
<Skript>
Standard exportieren {
Name:"Kinder",
  Setup (Requisiten, Kontext) {
    Funktion Kinderaber(){
      konsole.log(Kontext);
      // 2. Verwenden Sie context.emit, um Daten vom Kind an das Elternteil zu übergeben. // Der erste Parameter ist der Methodenname und der zweite Parameter sind die zu übergebenden Daten. context.emit("change",'world')
    }
    zurückkehren {
      Kinderaber,
    }
  }
}
</Skript>

Kontext kann auch in Form einer Struktur geschrieben werden

// Unterkomponente <script>
Standard exportieren {
Name:"Kinder",
  // Nach dem Übergeben der Struktur direkt emit schreiben {emit}
  setup(Eigenschaften,{emit}){
    Funktion Kinderaber(){
      // Context.emit weglassen
      emittieren("ändern","Welt")
    }
    zurückkehren {
      Kinderaber,
    }
  }
}
</Skript>

Zusammenfassen

In vue3 ist es, egal ob es sich um Eltern-zu-Kind oder Kind-zu-Eltern handelt, tatsächlich dasselbe wie in vue2.

Die Ideen sind größtenteils gleich, aber der Unterschied besteht darin, dass vue3 verschiedene Hooks aufrufen muss, um Parameter zu übergeben

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Werteübertragung von Vue-Eltern-Kind-Komponenten und der Probleme beim unidirektionalen Datenfluss
  • Gegenseitiger Wertetransfer und Aufruf von Vue-Eltern-Kind-Komponenten
  • Detaillierte Erläuterung der sieben Wertübertragungsmethoden von Vue
  • Einige Fallstricke bei der Wertübertragung von Vue-Eltern-Kind-Komponenten
  • Beispiel für die Übergabe von Werten zwischen untergeordneten Vue-Komponenten und übergeordneten Komponenten
  • Vue: Wertübertragung zwischen Vater und Sohn, Wertübertragung zwischen Bruder und Kind, detaillierte Erläuterung

<<:  Saubere XHTML-Syntax

>>:  Erstellen einer verteilten Selenium-Umgebung basierend auf Docker

Artikel empfehlen

Detaillierte Erklärung der Top-Befehlsausgabe in Linux

Vorwort Ich glaube, jeder hat den Befehl top unte...

Ein tiefer Einblick in die MySQL InnoDB-Speicher-Engine

Vorwort InnoDB gehört in MySQL zur Speicher-Engin...

HTML-Elemente durch Anzeige oder Sichtbarkeit verbergen

Manchmal müssen wir steuern, ob HTML-Elemente auf ...

img usemap Attribut China Karte Link

HTML-img-Tag: definiert ein Bild, das in eine Webs...

Tutorial zur Installation und Konfiguration von MySQL 5.7 unter CentOS7 (YUM)

Installationsumgebung: CentOS7 64-Bit, MySQL5.7 1...

Standardmäßige Stilanordnung für HTML-Tags

html, address,blockquote,body, dd, div,dl, dt, fie...

Detaillierte Erklärung der HTML-Tabellen

Funktion: Datenanzeige, Tabellenanwendungsszenari...

Häufige Fehler und Gründe für MySQL-Verbindungsfehler

=================================================...

9 praktische CSS-Eigenschaften, die Web-Frontend-Entwickler kennen müssen

1. Abgerundete Ecken Heutige Webdesigns halten stä...

So verwenden Sie Docker zum Bereitstellen von Front-End-Anwendungen

Docker erfreut sich immer größerer Beliebtheit. E...

Verwenden Sie CSS, um einen 3D-Fotowandeffekt zu erstellen

Verwenden Sie CSS, um eine 3D-Fotowand zu erstell...