Detaillierte Erklärung der Requisiten und Kontextparameter der SetUp-Funktion in Vue3

Detaillierte Erklärung der Requisiten und Kontextparameter der SetUp-Funktion in Vue3

1. Der erste Parameter props der setUp-Funktion

setup(Requisiten,Kontext){}

Die ersten Parametereigenschaften:

Props ist ein Objekt, das alle Daten enthält, die von einer übergeordneten Komponente an eine untergeordnete Komponente übergeben werden.

Verwenden Sie Requisiten zum Empfangen untergeordneter Komponenten.

Ein Objekt, das alle von der Konfiguration deklarierten und übergebenen Eigenschaften enthält

Das heißt: wenn Sie den Wert ausgeben möchten, der von der übergeordneten Komponente über Requisiten an die untergeordnete Komponente übergeben wird.

Sie müssen Requisiten verwenden, um die Konfiguration zu erhalten. Das heißt, Requisiten: {......}

Wenn Sie die Konfiguration über Props nicht akzeptieren, ist der Ausgabewert undefiniert

<Vorlage>
  <div Klasse="Box">
    Übergeordnete Komponente</div>
  <no-cont :meintitle="Nachricht" 
      othertitle="Titel anderer"
      @sonclick="sonclick">
  </kein-forts>
</Vorlage>

<script lang="ts">
importiere NoCont aus "../components/NoCont.vue"
Standard exportieren {
  aufstellen () {
    lass msg = {
      Titel: „Daten von der übergeordneten Komponente zur untergeordneten Komponente“
    }
    Funktion Sonclick (msss:Zeichenfolge) {
      Konsole.log(msss)
    }
    returniere {msg,sonclick}
  },
  Komponenten: {
    Keine Fortsetzung
  }
}
</Skript>
<Vorlage>
    <div @click="sonHander">
        Ich bin die Daten in der untergeordneten Komponente</div>
</Vorlage>

<script lang="ts">
importiere { defineComponent, setup } von „vue“;
exportiere StandarddefiniereKomponente({
  Name: 'NoCont',
 // Nicht akzeptiert // props:{
 // meinTitel:{
 // Typ:Objekt
 // }
 // },
  Setup (Requisiten, Kontext) {
    console.log('props==>',props.mytitle);//Der Ausgabewert ist nicht definiert
    Funktion sonHander(){
        context.emit('sonclick','Unterkomponente wird an übergeordnete Komponente übergeben')
    }
    return {sonHander}
  }
});
</Skript>

Warum ist der von props.mytitle ausgegebene Wert undefiniert?

Weil wir zum Empfangen der Konfiguration keine Requisiten verwendet haben. Im Augenblick

Requisiten:{
    meinTitel:{
        Typ:Objekt
    }
},

Wenn wir die Accept-Konfiguration hinzufügen

2. Erläuterung des Parameterkontexts

Der zweite Parameter: Kontext ist ein Objekt.

Es gibt Attrs (alle Attribute des aktuellen Tag-Objekts abrufen)

Allerdings ist diese Eigenschaft in Props nicht so deklariert, dass sie alle Objekte empfängt.

Wenn Sie Props verwenden, um den Wert abzurufen, und Sie den Wert, den Sie abrufen möchten, in Props deklarieren

Dann: Der erhaltene Wert ist undefiniert

Notiz:

Es ist nicht erforderlich, den Empfang in Requisiten zu deklarieren, um den Wert der Attribute zu erhalten.

Der erste Parameter props erhält den Wert, der in props deklariert werden muss

Es gibt eine Emit-Ereignisverteilung (das Ereignis muss verwendet werden, um es an die übergeordnete Komponente weiterzugeben).

Es gibt Spielautomaten

<Vorlage>
    <div @click="sonHander">
        Ich bin die Daten in der untergeordneten Komponente</div>
</Vorlage>

<script lang="ts">
importiere { defineComponent, setup } von „vue“;
exportiere StandarddefiniereKomponente({
  Name: 'NoCont',
  Requisiten:{
      meinTitel:{
          Typ:Objekt
      }
  },
  Setup (Requisiten, Kontext) {
    //Ausgabe {Titel: vom übergeordneten Bestandteil übergebener Wert}
    console.log('props==>',props.meinTitel);
    
    // Titel anderer Personen ausgeben [Verwenden Sie den Kontext, um den Wert zu erhalten. Es sind keine Requisiten erforderlich, um ihn zu akzeptieren.]
    Konsole.log('Kontext==> ',Kontext.attrs.andererTitel);
    
    // Gibt undefiniert aus, da der Kontext zum Akzeptieren keine Props verwenden muss.
    console.log('contextmytitle==> ',context.attrs.mytitle);
    Funktion sonHander(){
        context.emit('sonclick','Unterkomponente wird an übergeordnete Komponente übergeben')
    }
    return {sonHander}
  }
});
</Skript>

3. Untergeordnete Komponenten senden Ereignisse an übergeordnete Komponenten

<Vorlage>
    <div @click="sonHander">
        Ich bin die Daten in der untergeordneten Komponente</div>
</Vorlage>

<script lang="ts">
importiere { defineComponent, setup } von „vue“;
exportiere StandarddefiniereKomponente({
  Name: 'NoCont',
  Requisiten:{
      meinTitel:{
          Typ:Objekt
      }
  },
  Setup (Requisiten, Kontext) {
    Funktion sonHander(){
        context.emit('sonclick','Unterkomponente wird an übergeordnete Komponente übergeben')
    }
    return {sonHander}
  }
});
</Skript>

4. Optimieren Sie den Event-Versand

Wir wissen, dass der zweite Parameter Kontext ein Objekt ist

Und das Objekt hat drei Attribute attrs, slots, emit

Wenn das Ereignis ausgelöst wird, verwenden Sie einfach emit

<Vorlage>
    <div @click="sonHander">
        Ich bin die Daten in der untergeordneten Komponente</div>
</Vorlage>

<script lang="ts">
importiere { defineComponent, setup } von „vue“;
exportiere StandarddefiniereKomponente({
  Name: 'NoCont',
  Requisiten:{
      meinTitel:{
          Typ:Objekt
      }
  },
  Setup (Eigenschaften, {Attribute, Slots, Ausgabe}) {
    //Verwenden Sie emit direkt, um Ereignisse zu versenden. Funktion sonHander(){
        emit('sonclick','Unterkomponente wird an übergeordnete Komponente übergeben')
    }
    return {sonHander}
  }
});
</Skript>

5. Holen Sie sich den von der übergeordneten Komponente übergebenen Wert

Wir verwenden den Parameter props, um den Wert zu erhalten

Und verwenden Sie attrs, um den Wert zu erhalten

<Vorlage>
<hr/>
   <h2>Unterkomponenten</h2>
    <div @click="sonHander">
        Ich bin die Daten in der untergeordneten Komponente</div>
    <h2>Verwenden der Props-Deklaration zum Empfangen von ==>{{ mytitle }}</h2> 
    <h2>Verwenden Sie den Parameter attrs, um ==>{{ attrs.othertitle }} zu erhalten</h2> 
</Vorlage>

<script lang="ts">
importiere { defineComponent, setup } von „vue“;
exportiere StandarddefiniereKomponente({
  Name: 'NoCont',
  Requisiten:{
      meinTitel:{
          Typ:Objekt
      }
  },
  Setup (Eigenschaften, {Attribute, Slots, Ausgabe}) {
    Funktion sonHander(){
        emit('sonclick','Unterkomponente wird an übergeordnete Komponente übergeben')
    }
    returniere {sonHander,attrs}
  }
});
</Skript>

Bei der Verwendung der Setup-Funktion sind einige Dinge zu beachten:

  • Die Setup-Funktion wird zwischen „beforeCreate“ und „created“ ausgeführt.
  • Da das Setup während der Erstellung ausgeführt wird, wurde die Komponente gerade erstellt und Daten und Methoden wurden noch nicht initialisiert. Daher können Daten und Methoden im Setup nicht verwendet werden.
  • Dies im Setup zeigt auf undefiniert
  • Das Setup kann nur synchron, nicht asynchron erfolgen

Zusammenfassen

Dies ist das Ende dieses Artikels über die Requisiten und Kontextparameter der SetUp-Funktion in Vue3. Weitere relevante Inhalte zu den Vue3 SetUp-Funktionsparametern finden Sie in den vorherigen Artikeln von 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:
  • Eine kurze Analyse der Details der Requisitenverwendung bei der Wertübertragung von Vue3-Eltern-Kind-Komponenten
  • Detaillierte Erklärung der Props-Verwendung von Komponentenkomponenten in Vue
  • Lassen Sie uns ausführlich über die Requisitenattribute von Komponenten in Vue sprechen
  • Extraktion von Props-Komponenten in Vue3

<<:  So fügen Sie ein Lua-Modul zu Nginx hinzu

>>:  MySQL-Benutzer und -Berechtigungen und Beispiele zum Knacken des Root-Passworts

Artikel empfehlen

Tipps, wie Sie aus Pixeln umfassende Markenerlebnisse machen

Herausgeber: In diesem Artikel wird die Rolle erö...

Details zur Verwendung der JS-Tag-Syntax

Inhaltsverzeichnis 1. Einführung in Label-Anweisu...

HTML ist eigentlich die Anwendung zum Erlernen mehrerer wichtiger Tags

Nachdem der Artikel „Dies wird eine Revolution“ er...

Teilen Sie 8 sehr nützliche CSS-Entwicklungstools

CSS3-Mustergalerie Diese CSS3-Musterbibliothek ze...

MySQL-Fremdschlüsseleinschränkung (FOREIGN KEY) Fallerklärung

Die MySQL-Fremdschlüsseleinschränkung (FOREIGN KE...

Docker-Fallanalyse: Erstellen eines MySQL-Datenbankdienstes

Inhaltsverzeichnis 1 Konfigurations- und Datenver...

Implementierungsschritte zum Erstellen eines FastDFS-Dateiservers unter Linux

Inhaltsverzeichnis 1. Softwarepaket 2. Installier...

Zugriffsvorgang im MySQL-Befehlszeilenmodus MySQL-Datenbankvorgang

Nutzungsumgebung Geben Sie im cmd-Modus mysql --v...

So ändern Sie das Root-Passwort von Mysql5.7.10 auf dem MAC

Starten Sie MySQL zunächst im Skip-Grant-Tables-M...

Ein magischer MySQL-Deadlock-Troubleshooting-Datensatz

Hintergrund Apropos MySQL-Deadlock: Ich habe bere...

Reines CSS zum Ändern der Farbe des Bildes

Die CSS-Technik zum Ändern der Farbe eines Bildes...

Überlegungen zur Partitionierung von MySQL-Datenbanktabellen [empfohlen]

Die Tabellenpartitionierung unterscheidet sich vo...