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

Implementierung der Knotenverbindung zur MySQL-Abfragetransaktionsverarbeitung

Inhaltsverzeichnis Geben Sie das Thema MySQL ein:...

Erfahren Sie, wie Sie eine MySQL-Datenbank auf dem Mac installieren

Laden Sie MySQL für Mac herunter: https://downloa...

Verwendung und Prinzipien von Provide und Inject in Vue3

Vorwort: Beim Übergeben von Daten zwischen überge...

Detaillierte Erläuterung des Kapselungsbeispiels für Netzwerkanforderungen

Exportstandard ({ URL (URL = URL = URL), Methode ...

Javascript zum Erzielen eines Trommeleffekts

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

Beispiel für die Verwendung des Nginx-Reverse-Proxys für Go-FastDFS

Hintergrund go-fastdfs ist ein verteiltes Dateisy...