Änderungen an der Rendering-APIDiese Änderung betrifft keine <template>-Benutzer
Renderfunktionsparameter// 2.0 Rendering-Funktion export default { rendern(h) { return h('div') } } // 3.x-Syntax export default { rendern() { return h('div') } } Änderungen an der Renderfunktionssignatur// 2.x Standard exportieren { rendern(h) { return h('div') } } // 3.x importiere { h, reaktiv } von 'vue' Standard exportieren { setup(Eigenschaft, {Slots, Attribute, emit}) { const state = reaktiv({ Anzahl: 0 }) Funktion Inkrement() { Zustand.Anzahl++ } // Zurück zur Renderfunktion return () => h( 'div', { bei Klick: Inkrement }, Statusanzahl ) } } Formatierung von VNode-Props// 2.x { Klasse: ['Schaltfläche', 'ist umrissen'], Stil: {Farbe: '#fffff'}, attr: {id: 'senden'}, domProps: {innerHTML: ''}, auf: {click: submitForm}, Schlüssel: 'Senden-Schaltfläche' } // 3.x VNode-Struktur ist flach { Klasse: ['Schaltfläche', 'ist umrissen'], Stil: { Farbe: '#34495E' }, ID: "Senden", innerHTML: '', beim Klicken: Formular absenden, Schlüssel: 'Senden-Schaltfläche' } Slot-VereinigungGeänderte normale Slots und eingeschränkte Slots
// 2.x h(LayoutComponent, [ h('div', {slot: 'header'}, dieser.header), h('div', {slot: 'header'}, dieser.header) ]) // Bereichssteckplatz: // 3.x h(LayoutComponent, {}, { Header: () => h('div', dieser.Header), Inhalt: () => h('div', dieser.Inhalt) }) // Wenn Sie Scoped Slots programmgesteuert einführen müssen, werden sie jetzt in der Option $slots vereinheitlicht // 2.x Scoped Slots dies.$scopedSlots.header // 3.x schreibe this.$slots.header $listeners entfernen Das In Vue2 können Sie this.attrs und this.attrs und this.listeners verwenden, um auf die Attribute und Ereignis-Listener zuzugreifen, die jeweils an die Komponente übergeben werden. In Kombination mit inheritAttrs: false können Entwickler diese Attribute und Listener auf andere Elemente statt auf das Stammelement anwenden. <Vorlage> <Bezeichnung> <Eingabetyp="Text" v-bind="$attrs" v-on="$listeners"> </Bezeichnung> </Vorlage> <Skript> Standard exportieren { inheritAttrs: false } </Skript> Im virtuellen DOM von Vue sind Ereignis-Listener jetzt nur noch Attribute mit dem Präfix „on“, was sie zu einem Teil des attrs-Objekts macht, sodass Listener entfernt werden. <Vorlage> <Bezeichnung> <Eingabetyp="Text" v-bind="$attrs" /> </Bezeichnung> </Vorlage> <Skript> Standard exportieren { inheritAttrs: false } // Wenn diese Komponente ein ID-Attribut und einen v-on:close-Listener erhält, sieht das $attrs-Objekt nun folgendermaßen aus { ID: "meine Eingabe", onClose: () => console.log('Schließen-Ereignis ausgelöst') } </Skript> $attrs umfasst jetzt Klasse und StilJetzt enthält $attr alle Attribute, einschließlich Klasse und Stil In 2.x behandelt das virtuelle DOM Klasse und Stil speziell, sodass sie nicht in $attr enthalten sind, was bei Verwendung von inheritAttr: false zu Nebenwirkungen führt.
<Vorlage> <Bezeichnung> <Eingabetyp="Text" v-bind="$attrs" /> </Bezeichnung> </Vorlage> <Skript> Standard exportieren { inheritAttrs: false } </Skript> <!-- Schreiben --> <meine-Komponente id="meine-id" class="meine-klasse"></meine-Komponente> <!-- vue2 wird generieren --> <label class="meine-klasse"> <input type="text" id="meine-id" /> </Bezeichnung> <!-- vue3 wird generieren --> <Bezeichnung> <input type="text" id="meine-id" class="meine-klasse" /> </Bezeichnung> Oben finden Sie eine ausführliche Erläuterung der inkompatiblen Änderungen der Rendering-Funktionen in vue3. Weitere Informationen zu inkompatiblen Änderungen der Vue-Rendering-Funktionen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
>>: So ermitteln Sie die Ausführungszeit eines Befehls oder Prozesses in Linux
Vorwort: position:sticky ist ein neues Attribut d...
Es gibt zwei Möglichkeiten, Daten in MySQL zu lös...
Die folgende Grafik zeigt, wie zeitaufwändig es is...
1. Erstellen Sie eine neue virtuelle Maschine in ...
Inhaltsverzeichnis Warum ist IN langsam? Was ist ...
Integritätsbeschränkungen Integritätsbedingungen ...
apt installiere CMake sudo apt installiere cmake ...
1. Vorbereitende Schritte (Windows 7 + MySQL-8.0....
Export: docker save -o centos.tar centos:latest #...
Problembeschreibung Im Rahmen der Ele.me-Benutzer...
Szenario 1: HTML: <div Klasse="äußere&quo...
Inhaltsverzeichnis 1. Docker installieren 2. Erst...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort In der Front-End-Programmierung verwenden...
[Problembeschreibung] Unsere Produktionsumgebung ...