Lassen Sie uns kurz über die Änderungen im Setup in vue3.0 sfc sprechen

Lassen Sie uns kurz über die Änderungen im Setup in vue3.0 sfc sprechen

Vorwort

In Vue bezeichnet sfc (Single File Component) ein spezielles Dateiformat mit der Dateiendung .vue, das es ermöglicht, Vorlage, Logik und Stil der Vue-Komponente in einer einzigen Datei zu kapseln.

Das Folgende ist ein grundlegender SFC

<Skript>
Standard exportieren {
  Daten() {
    zurückkehren {
      Begrüßung: „Hallo Welt!“
    }
  }
}
</Skript>

<Vorlage>
  <p class="gruß">{{ gruß }}</p>
</Vorlage>

<Stil>
.Gruß {
  Farbe: rot;
  Schriftstärke: fett;
}
</Stil>

Vue3.0 hat die Setup-Schreibmethode im neuesten SFC-Vorschlag eingeführt. Werfen wir einen Blick auf die Änderungen im neuen Vorschlag.

Standard-SFC-Schreibmethode

Bei Verwendung von TS muss das Standard-SFC „defineComponent“ verwenden, um die Typinferenz durchzuführen.

<script lang="ts">
  importiere { defineComponent } von 'vue'

    exportiere StandarddefiniereKomponente({
    aufstellen() {
      zurückkehren {
        // Eigenschaften, die der Vorlage zur Verfügung gestellt werden }
    }
  })
</Skript>

Skript-Setup

Der Zweck des Startens der Skript-Einrichtung besteht darin, Entwicklern die effizientere Entwicklung von Komponenten zu ermöglichen, den Boilerplate-Inhalt zu reduzieren und den Entwicklungsaufwand zu verringern. Fügen Sie dem Skript-Tag einfach ein Setup-Attribut hinzu, um das Skript in eine Setup-Funktion umzuwandeln. Gleichzeitig werden die definierten Variablen, Funktionen und importierten Komponenten standardmäßig der Vorlage zur Verfügung gestellt.

Variable Belichtung

Standardschreiben

<Skript>
importiere { defineComponent, ref} von 'vue'

exportiere StandarddefiniereKomponente({
  aufstellen() {
    Konstante Anzahl = ref(0)
    zurückkehren {
      zählen
    }
  }
})
</Skript>

<Vorlage>
  <div>
    Elternteil{{count}}
  </div>
</Vorlage>

Aufstellen

<script setup lang="ts">
importiere {ref} von 'vue'

  Konstante Anzahl = ref(0)
</Skript>

<Vorlage>
  <div>
    Elternteil{{count}}
  </div>
</Vorlage>

Komponentenmontage

Standardschreiben

<script lang="ts">
importiere { defineComponent } von 'vue'
Kind aus „./childComponent“ importieren

exportiere StandarddefiniereKomponente({
  Komponenten:
    Kind
  },
  aufstellen() {
    // ...
  }
})
</Skript>

<Vorlage>
  <div>
    Elternteil
    <Kind />
  </div>
</Vorlage>

Aufstellen

<script setup lang="ts">
Kind aus „./childComponent“ importieren
</Skript>

<Vorlage>
  <div>
    Elternteil
    <Kind />
  </div>
</Vorlage>

Sie müssen Komponenten nicht manuell mounten, Sie können sie in Vorlagen verwenden, was effizient und schnell ist. Andere Variablen und APIs der obersten Ebene, wie z. B. Compute und Watch, werden genauso geschrieben wie im ursprünglichen Standard.

Requisiten

Beim Empfangen von Props im Setup müssen Unterkomponenten „defineProps“ verwenden. Dabei handelt es sich um eine API, die nur in der Setup-Syntax verwendet werden kann. Sehen wir uns zunächst die Standardschreibweise und die Art und Weise an, wie Requisiten aufgenommen werden.

Standardschreiben

// übergeordnetes Element.vue
<Vorlage>
  <child :Anzahl={Anzahl} />
</Vorlage>
<script lang="ts">
importiere {defineComponent,ref} von 'vue'
Kind aus „./childComponent“ importieren

exportiere StandarddefiniereKomponente({
  Komponenten:
    Kind
  },
  aufstellen() {
    Konstante Anzahl = ref(0)
    zurückkehren {
      zählen
    }
  }
})
</Skript>
//Kind.vue
<Vorlage>
  Kind{{count}}
</Vorlage>
<script lang="ts">
importiere {defineComponent} aus 'vue'
exportiere StandarddefiniereKomponente({
  Requisiten: ['Anzahl'],
  setup(Requisiten) {
    zurückkehren {}
  }
})
</Skript>

Setup schreiben, mit defineProps

// übergeordnetes Element.vue
<Vorlage>
  <child :Anzahl={Anzahl} />
</Vorlage>
<script setup lang="ts">
importiere {ref} von 'vue'
Kind aus „./childComponent“ importieren

  const count = ref<Zahl>(0)
</Skript>
//Kind.vue
<Vorlage>
  Kind{{count}}
</Vorlage>
<Skript-Setup>
defineProps(['Anzahl'])
</Skript>


Hinweis: Bei Verwendung der sfc-setup-Syntax ist die Einführung von defineProps nicht erforderlich.

Hier müssen wir lediglich Props deklarieren, was viel einfacher zu schreiben ist.


Wie geben Sie also Prüfeigenschaften ein?

<Skript-Setup>
defineProps({
  Anzahl: Zahl,
  Titel:
    Typ: Zeichenfolge,
    Standard: „Kopfzeile“
  },
  Daten: {
    Typ: Objekt,
    Standard() {
      zurückkehren {}
    }
  }
})
</Skript>


Wie verwende ich TS zur Typanmerkung?

<script lang="ts" setup>
Schnittstelle d {
  Name: Zeichenfolge
  }

  defineProps<{
  Anzahl: Zahl // Zahl sollte durch ts-Syntax ersetzt werden Titel: Zeichenfolge
  Daten:d
}>()
</Skript>


Wir haben festgestellt, dass Props keinen Standardwert erhalten. Beim Schreiben von TS gibt es zwei Möglichkeiten, einen Standardwert für Props festzulegen

ES6-Variablendestrukturierungszuweisung

defineProps gibt ein Objekt zurück, und wir können das zurückgegebene Objekt destrukturieren und gleichzeitig Standardwerte zuweisen.

<script lang="ts" setup>
Schnittstelle d {
  Name: Zeichenfolge
  }

  const {Anzahl = 0, Titel = 'Überschrift', Datum = {Name: 'a'}} = defineProps<{
  count: number // Die Zahl muss durch die ts-Syntax ersetzt werden title: string
  Daten:d
}>()
</Skript>

mitStandards


Später wurde withDefaults offiziell eingeführt, um Standardwerte für Requisiten bereitzustellen. withDefaults führt eine Typprüfung der Standardwerte durch.

<script lang="ts">
// Vergessen Sie nicht, withDefaults zu importieren
importiere { withDefaults } von 'vue'

  Schnittstelle d {
  Name: Zeichenfolge
  }

  const props = mitDefaults(defineProps<{
  Anzahl: Zahl // Zahl sollte durch ts-Syntax ersetzt werden Titel: Zeichenfolge
  Daten:d
}>(), {
  Anzahl: 0,
  Titel: 'Kopfzeile',
  Daten: () => ({name: '王小二'})
})
</Skript>

Benutzerdefinierte Ereignisse

Um Ereignisse im Setup zu verwenden, müssen Sie defineEmits verwenden. Dies ist ebenfalls ein Compilermakro, das nur in der SFC-Setup-Syntax verwendet werden kann.

<script setup lang="ts">
  // Ereignisse definieren und Typen kommentieren // Nicht-TS-Schreiben: const emits = defineEmits(['create'])
  const emits = defineEmits<{
    (e: 'erstellen', Wert: Zeichenfolge): void
  }>()

    // Ereignis auslösen const addTodo = () => {
    emittiert('erstellen', 'hallo')
 }
</Skript>

Fügen Sie ein offizielles TodoMVC-Beispiel hinzu, das mit Vue3 + ts überarbeitet wurde: codesandbox.io/s/vibrant-w…

Zusammenfassen

Dies ist das Ende dieses Artikels über die Setup-Änderungen in vue3.0 sfc. Weitere relevante Setup-Änderungen in vue3.0 sfc finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zweier zu beachtender Punkte bei vue3: Setup
  • Vue3+Skript-Setup+ts+Vite+Volar-Projekt
  • Detaillierte Erklärung der Requisiten und Kontextparameter der SetUp-Funktion in Vue3
  • Detaillierte Erklärung der Verwendung von SetUp- und Reactive-Funktionen in Vue3
  • Verwendung des Setups in vue3.0 (zwei Verwendungsmöglichkeiten)
  • Vue3 setup() - Erweiterte Verwendungsbeispiele - ausführliche Erklärung

<<:  So zeigen Sie JSON-Daten in HTML an

>>:  Implementierungsprinzip und Konfiguration der MySql Master-Slave-Replikation

Artikel empfehlen

So konfigurieren Sie den Whitelist-Zugriff in MySQL

Schritte zum Konfigurieren des Whitelist-Zugriffs...

Detaillierte Erklärung der MySQL-Dreiwertelogik und NULL

Inhaltsverzeichnis Was ist NULL Zwei Arten von NU...

Informationen zum CSS-Floating und zum Aufheben des Floatings

Definition von Float Setzt das Element aus dem no...

Detaillierter Prozess der SpringBoot-Integration von Docker

Inhaltsverzeichnis 1. Demo-Projekt 1.1 Schnittste...

MySQL 5.7.17 Winx64 Installations- und Konfigurations-Tutorial

Heute habe ich die MySQL-Datenbank erneut auf mei...

TypeScript-Aufzählungstyp

Inhaltsverzeichnis 1. Übersicht 2. Digitale Aufzä...

Benutzerdefinierte optionale Zeitkalenderkomponente von Vue

In diesem Artikelbeispiel wird der spezifische Co...

Die Bedeutung des Statuscodes im HTTP-Protokoll

Ein Statuscode, der eine vorläufige Antwort anzei...

Zusammenfassung des Verständnisses des virtuellen DOM in Vue

Es handelt sich im Wesentlichen um ein allgemeine...

Zwei Möglichkeiten, die CSS-Priorität zu verstehen

Methode 1: Werte hinzufügen Gehen wir zu MDN, um ...

Neue Blockbereichsfunktion von JavaScript ES

Inhaltsverzeichnis 1. Was ist Blockbereich? 2. Wa...