VorwortIn 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-SchreibmethodeBei 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-SetupDer 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 BelichtungStandardschreiben <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> KomponentenmontageStandardschreiben <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. RequisitenBeim 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>
Hier müssen wir lediglich Props deklarieren, was viel einfacher zu schreiben ist.
<Skript-Setup> defineProps({ Anzahl: Zahl, Titel: Typ: Zeichenfolge, Standard: „Kopfzeile“ }, Daten: { Typ: Objekt, Standard() { zurückkehren {} } } }) </Skript>
<script lang="ts" setup> Schnittstelle d { Name: Zeichenfolge } defineProps<{ Anzahl: Zahl // Zahl sollte durch ts-Syntax ersetzt werden Titel: Zeichenfolge Daten:d }>() </Skript>
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
<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 EreignisseUm 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… ZusammenfassenDies 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:
|
<<: So zeigen Sie JSON-Daten in HTML an
>>: Implementierungsprinzip und Konfiguration der MySql Master-Slave-Replikation
Schritte zum Konfigurieren des Whitelist-Zugriffs...
Vorwort: Die verteilte Master-Slave-Architektur v...
Die Speichergröße und der Bereich jedes Gleitkomm...
Inhaltsverzeichnis Was ist NULL Zwei Arten von NU...
Definition von Float Setzt das Element aus dem no...
Inhaltsverzeichnis 1. Demo-Projekt 1.1 Schnittste...
Heute habe ich die MySQL-Datenbank erneut auf mei...
Heute ist das Springboot-Projekt des Unternehmens...
Inhaltsverzeichnis 1. Übersicht 2. Digitale Aufzä...
In diesem Artikelbeispiel wird der spezifische Co...
Das Installations-Tutorial für die dekomprimierte...
Ein Statuscode, der eine vorläufige Antwort anzei...
Es handelt sich im Wesentlichen um ein allgemeine...
Methode 1: Werte hinzufügen Gehen wir zu MDN, um ...
Inhaltsverzeichnis 1. Was ist Blockbereich? 2. Wa...