Funktionale Komponenten Das funktionale Attribut in der Single File Component (SFC) <template> wurde entfernt // Verwenden Sie die Komponente <dynamic-heading>, die für die Bereitstellung der entsprechenden Überschrift (also h1, h2, h3 usw.) verantwortlich ist. In 2.x würde dies wahrscheinlich als einzelne Dateikomponente geschrieben werden: // Vue 2 Funktionskomponente Beispiel export default { funktional: wahr, Requisiten: ['Level'], render(h, { Eigenschaften, Daten, untergeordnete Elemente }) { returniere h(`h${props.level}`, Daten, untergeordnete Elemente) } } // Vue 2 Funktionskomponentenbeispiel mit <template> <funktionale Vorlage> <Komponente :ist="`h${props.level}`" v-bind="attrs" v-on="Zuhörer" /> </Vorlage> <Skript> Standard exportieren { Requisiten: ['Level'] } </Skript> Jetzt werden in Vue 3 alle funktionalen Komponenten mit normalen Funktionen erstellt. Mit anderen Worten besteht keine Notwendigkeit, die Komponentenoption { functional: true } zu definieren. //vue3.0 importiere { h } von 'vue' const DynamicHeading = (Eigenschaften, Kontext) => { returniere h(`h${props.level}`, Kontext.attrs, Kontext.slots) } DynamicHeading.props = ['Ebene'] Standardmäßige dynamische Überschrift exportieren // Vue3.0 einzelne Datei schreiben <template> <Komponente v-bind:is="`h${$props.level}`" v-bind="$attrs" /> </Vorlage> <Skript> Standard exportieren { Requisiten: ['Level'] } </Skript> Der Hauptunterschied ist Das funktionale Attribut zum Entfernen von Listenern in <template> wird nun als Teil von $attrs übergeben und kann entfernt werden So schreiben Sie asynchrone Komponenten und die Methode „defineAsyncComponent“ Verwenden Sie nun die Hilfsmethode defineAsyncComponent, um asynchrone Komponenten explizit zu definieren // vue2.x // Bisher wurden asynchrone Komponenten erstellt, indem die Komponente als Funktion definiert wurde, die ein Promise zurückgibt const asyncPage = () => import('./NextPage.vue') // Oder als Option erstellen const asyncPage = { Komponente: () => import('./NextPage.vue'), Verzögerung: 200, Zeitüberschreitung: 3000, Fehler: ErrorComponent, wird geladen: Komponente wird geladen } // vue3.x In vue3.x müssen Sie defineAsyncComponent verwenden, um import{ defineAsyncComponent } von „vue“ zu definieren. Importiere ErrorComponent aus „./components/ErrorComponent.vue“ importiere LoadingComponent aus './components/LoadingComponent.vue' // Definitionsmethode ohne Optionen const asyncPage = defineAsyncComponent(() => import('./NextPage.vue')) // Asynchrone Komponente mit Optionen constasyncPageWithOptions = defineAsyncCopmonent({ Lader: () => import('./NextPage.vue'), Verzögerung: 200, Zeitüberschreitung: 3000, Fehlerkomponente: Fehlerkomponente, Komponente wird geladen: Komponente wird geladen }) Die Loader-Funktion akzeptiert keine Resolve- und Reject-Parameter mehr und muss immer ein Promise zurückgeben. // vue2.x const oldAsyncComponent = (auflösen, ablehnen) => {} // vue3.x const asyncComponent = defineAsyncComponent(() => neues Promise((auflösen, ablehnen) => {})) Komponentenereignisse müssen in der Option „Emits“ deklariert werden.Vue3 bietet jetzt eine Emit-Option, die der Props-Option ähnelt. Mit dieser Option können Ereignisse definiert werden, die Komponenten an ihre übergeordneten Objekte senden. <!-- vue2.x --> <Vorlage> <div> <p>{{ text }}</p> <button v-on:click="$emit('accepted')">OK</button> </div> </Vorlage> <Skript> Standard exportieren { Requisiten: ['Text'] } </Skript> <!-- vue3.x --> <!-- Ähnlich wie bei Props können Ems nun verwendet werden, um von Komponenten emittierte Ereignisse zu definieren--> <!-- Diese Option empfängt auch ein bestimmtes Objekt, das zur Validierung der übergebenen Parameter wie Requisiten verwendet wird--> <!-- Es wird dringend empfohlen, alle Emission von jeder Komponente aufzuzeichnen, da ohne den Modifikator .native alle Listener für Ereignisse, die nicht mit deklariert wurden, in das $attr der Komponente aufgenommen werden, das standardmäßig an den Stammknoten der Komponente gebunden ist --> <Vorlage> <div> <p>{{ text }}</p> <button v-on:click="$emit('accepted')">OK</button> </div> </Vorlage> <Skript> Standard exportieren { Requisiten: ['Text'], emittiert: ['akzeptiert'] } </Skript> Oben finden Sie eine ausführliche Erläuterung der inkompatiblen Komponentenänderungen in vue3. Weitere Informationen zu inkompatiblen Komponentenänderungen in vue3 finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung zum Wiederherstellen von Datenbankdaten über das MySQL-Binärprotokoll
>>: Detaillierte Erläuterung des Nginx-Reverse-Generation-Beispiels für verteilten Mogilefs-Speicher
Lernen wir verschiedene Arten von Schleifen kenne...
Inhaltsverzeichnis Vorwort 1. SS-Befehl 2. Gesamt...
1. Entpacken Sie mysql-8.0.21-winx64 2. Konfiguri...
Inhaltsverzeichnis Vorwort 1. Gründe: 2. Lösungsi...
Hier habe ich hauptsächlich einige häufig verwend...
Vorwort Wenn die Abfrageinformationen aus mehrere...
Funktion Currying (schwarzes Fragezeichen)? ? ? C...
Um die von uns erstellten Images zentral zu verwa...
<body style="scroll:no"> <Tabe...
Schritt 1: Geben Sie das Verzeichnis ein: cd /etc...
<br />„Es gibt keine hässlichen Frauen auf d...
Lassen Sie mich kurz einige gängige Grundgrafiken...
In diesem Artikelbeispiel wird der spezifische Co...
Ich erstelle derzeit Nginx, kann aber nicht über ...
Kurz zusammengefasst: Browserkompatibilitätsprobl...