Abstrakt: Das Konzept der neuen Version von Das Konzept der neuen Version von Vue3 entstand Ende 2018, als Vue 2 bereits zweieinhalb Jahre alt war. Verglichen mit dem Lebenszyklus allgemeiner Software erscheint dies nicht so lang. Vue3 wurde 2020 offiziell eingeführt, mit wesentlichen Änderungen im Quellcode und der API. Die Leistung wurde erheblich verbessert und ist 1,2- bis 2-mal schneller als bei Vue2.x. Zu den wichtigsten Vorteilen zählen unter anderem: Optimierung des Diff-Algorithmus: statische Verbesserung Lassen Sie uns im Detail über die Vorteile von vue3 sprechen: Vorteil 1: Optimierung des Diff-AlgorithmusDer virtuelle DOM in Vue2 ist ein vollständiger Vergleich (jeder Knoten, ob fest codiert oder dynamisch, wird Schicht für Schicht verglichen, wodurch die meisten Ereignisse beim Vergleich statischer Knoten verschwendet werden). Vue3 fügt ein statisches Flag ( Beispielsweise enthält die folgende Vorlage ein Div mit drei Absätzen. Die ersten beiden Absätze sind statisch und festgelegt, während der Inhalt des dritten Absatzes an das <div> <p>Gemeinsame Erstellung von Cloud-Residenzen</p> <p>So bewerten Sie vue3</p> <p>{{msg}}</p> </div> Beim Aktualisieren der Ansicht werden nur die dynamischen Knoten differenziert, was den Ressourcenverbrauch reduziert. Vorteil 2: HebezeugStatisches statisches Heben Vue2 führt jedes Mal eine Neuerstellung und ein Rendering durch, unabhängig davon, ob das Element an der Aktualisierung teilnimmt. Für Elemente, die nicht am Update teilnehmen, führt Vue3 eine statische Promotion durch. Sie werden nur einmal erstellt und können beim Rendern direkt wiederverwendet werden. Verwenden wir beispielsweise <div> <div>Gemeinsam gestalten 1</div> <div>Gemeinsam gestalten 2</div> <div>{{name}}</div> </div> Vor dem statischen Heben Exportfunktion rendern(...) { zurückkehren ( _openBlock(), _createBlock('div', null, [ _createVNode('div', null, 'Miterstellen 1'), _createVNode('div', null, 'Gemeinsame Kreation 2'), _createVNode( 'div', null, _toDisplayString(_ctx.name), 1 /* TEXT */ ), ]) ) } Nach dem statischen Heben const _hoisted_1 = /*#__PURE__*/ _createVNode( 'div', null, „Mitgestalten 1“, -1 /* GEHOBT */ ) const _hoisted_2 = /*#__PURE__*/ _createVNode( 'div', null, „Ko-Kreation 2“, -1 /* GEHOBT */ ) Exportfunktion rendern(...) { zurückkehren ( _openBlock(), _createBlock('div', null, [ _gehisst_1, _gehisst_2, _createVNode( 'div', null, _toDisplayString(_ctx.name), 1 /* TEXT */ ), ]) ) } Aus dem obigen Code Vorteil 3: cacheHandlers Event-Listener-Cache In vue2.x muss jedes Mal, wenn ein gebundenes Ereignis ausgelöst wird, eine neue Standardmäßig wird Verwenden wir beispielsweise <div> <div @click="todo">Mach etwas Lustiges</div> </div> Nach der Kompilierung hat dieser Exportfunktion rendern(...) { return (_openBlock(),_createBlock('div', null, [ _createVNode('div',{ onClick: _ctx.todo}, 'Mach etwas Interessantes', 8 /* PROPS */, ['beim Klicken']), ]) ) } Wenn wir das Caching des Ereignislisteners aktivieren: Exportfunktion rendern(...) { return (_openBlock(),_createBlock('div', null, [ _createVNode('div',{ onClick: //Nach dem Aktivieren von monitoring_cache[1] || (_cache[1] = (...args) =>_ctx.todo(...args)), },'Mach etwas Interessantes'), ]) ) } Wir können den Code vor und nach dem Einschalten des Event-Listening-Cache vergleichen. Möglicherweise verstehen Sie den Code nach der Konvertierung nicht, aber das macht nichts. Wir müssen nur beobachten, ob statische Tags vorhanden sind. Im Diff-Algorithmus von Vue3 werden nur diejenigen mit statischen Tags verglichen und verfolgt. Vorteil 4: SSR-RenderingVue2 verfügt auch über SSR-Rendering, aber das SSR-Rendering in Vue3 weist im Vergleich zu Vue2 entsprechende Leistungsverbesserungen auf. Wenn eine große Menge statischer Inhalte vorhanden ist, werden diese Inhalte als reine Zeichenfolge in einen Wenn der statische Inhalt groß genug ist, wird die Methode Vorteil 5: Bessere Ts-Unterstützung Aufgrund des In der konkreten Praxis der Kombination von vue2 mit ts wird In vue3 wird eine importiere { defineComponent, ref } von 'vue' const Komponente = defineComponent({ Requisiten: { Erfolg: { Typ: String }, Student: Typ: Objekt als PropType<Student>, erforderlich: true } }, aufstellen() { Konstantes Jahr = Ref(2020) const Monat = ref<Zeichenfolge | Zahl>('9') Monat.Wert = 9 // OK const Ergebnis = Jahr.Wert.Split('') } Vorteil 6: Compostion API: Kombinations-API/Injection-API Herkömmliche Webseiten werden durch Der Verwenden Sie in vue3 die importiere useCounter aus './counter' importiere useTodo aus „./todos“ aufstellen(){ let { val, todos, addTodo } = useTodo() let { zählen, addieren } = useCounter() zurückkehren { val, todos, addTodo, zählen, hinzufügen, } Vorteil 7: Fortschrittlichere Komponenten Vue2 erlaubt das Schreiben nicht. Die Komponente muss einen Stammknoten haben. Jetzt können Sie es so schreiben und Vue erstellt für uns einen virtuellen <Vorlage> <div>Huawei Cloud-Experten</div> <div>Full-Stack-Blogger</div> </Vorlage> Bevor Vorteil 8: Benutzerdefinierte Rendering-API Die Projektarchitektur von vue2.x ist nicht sehr benutzerfreundlich für das Rendering auf verschiedenen Plattformen wie weex (eine plattformübergreifende Lösung für Mobilgeräte) und Ansicht2: Vue von „vue“ importieren App aus „./App.vue“ importieren neue Vue({ => h(App)}).$mount('#app') Ansicht3: const { createApp } von "vue" App aus "./src/App" importieren erstelleApp(App).mount(('#app')
importiere { createApp } aus "./runtime-render"; App aus "./src/App" importieren; // Stammkomponente createApp(App).mount('#app'); Durch die Verwendung benutzerdefinierter Rendering-APIs wie Vorteil 9: Kompilierung bei Bedarf, kleiner als vue2.xAuch die Größe des Rahmens beeinflusst seine Leistung. Dies ist ein einzigartiges Problem bei Webanwendungen, da die Ressourcen sofort heruntergeladen werden müssen und die Anwendung daher erst interaktiv ist, wenn der Browser das erforderliche JavaScript analysiert hat. Dies gilt insbesondere für Single-Page-Anwendungen. Obwohl Vue immer relativ leichtgewichtig war (die Laufzeitgröße von Vue 2 beträgt komprimiert 23 KB). In Vue 3 wurde dies erreicht, indem die meisten globalen APIs und internen Helfer in ES-Modulexporte verschoben wurden. Dies ermöglicht modernen Bundlern, Modulabhängigkeiten statisch zu analysieren und nicht verwendeten exportbezogenen Code zu entfernen. Der Vorlagencompiler generiert außerdem benutzerfreundlichen Für einige Teile des Frameworks wird niemals Vorteil 10: Unterstützung mehrerer Stammknotenkomponenten In Vue3 ist eine Vorlage nicht mehr auf mehrere Stammknoten beschränkt. ( In Vue 3 unterstützen Komponenten jetzt offiziell Multi-Root-Komponenten, auch Fragmente genannt! In 2.x wurden Multi-Root-Komponenten nicht unterstützt und es wurde eine Warnung ausgegeben, wenn der Benutzer versehentlich eine Multi-Root-Komponente erstellte. Um diesen Fehler zu beheben, wurden daher mehrere Komponenten zu einer zusammengefasst. wie folgt <Vorlage> <div> <header>...</header> <main>...</main> <footer>...</footer> </div> </Vorlage> In 3.x können Komponenten jetzt mehrere Stammknoten haben! Dies erfordert jedoch, dass der Entwickler explizit definiert, wo die Attribute verteilt werden sollen. <Vorlage> <header>...</header> <main v-bind="$attrs">…</main> <footer>...</footer> </Vorlage> Zusammenfassen:
Dies ist das Ende dieses Artikels über die Vorteile von vue3 gegenüber vue2. Weitere Informationen zu den Vorteilen von vue3 gegenüber vue2 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Lernen Sie, wie Sie in 6 Sekunden 1 Million Datensätze in MySQL einfügen
>>: Lassen Sie uns über die Speicher-Engine in MySQL sprechen
1. Notwendigkeit des Tunings Ich habe mich immer ...
Vorwort Sie erhalten möglicherweise häufig Warn-E...
Ich verwende tengine, das Installationsverzeichni...
Inhaltsverzeichnis Vorwort Komponenten erstellen ...
1.vue-Verpackung Hier verwenden wir den Befehl „v...
Es ist großartig, CSS zu verwenden, um verschiede...
Inhaltsverzeichnis 1. Was ist Blockbereich? 2. Wa...
Ich habe vor langer Zeit eine virtuelle Maschine ...
Vorwort Wenn in einem relativ komplexen großen Sy...
1. Indizes speichern keine Nullwerte Genauer gesa...
Ein n-stelliger Bestätigungscode, der aus Zahlen,...
Aggregatfunktionen Wirkt auf einen Datensatz ein ...
Wir diskutieren hier nicht über PHP-, JSP- oder ....
Dieser Artikel stellt die Entwicklungsumgebung vo...
Lösung 1: Verwenden Sie bedingten Import im HTML-...