Vue.js 3: Was wird sich ändern?

Vue.js 3: Details zu Plänen für das JavaScript-Framework präsentiert
1 Kommentar

Vue.js 3 soll in TypeScript geschrieben werden, so viel ist bereits bekannt. In einer neuen Präsentation stellte Evan You nun einige Details zu den Plänen für Vue.js 3 vor. Schneller, kleiner, leichter zu pflegen soll die neue Version werden. Aber wie sieht das genau aus?

Evan You, der Erfinder von Vue.js, hat sich erneut zu den Plänen für die dritte Major-Version des Frameworks geäußert. In einer Präsentation auf der VueConf Toronto präsentierte er Details zur technischen Umsetzung der Kernziele für Vue.js 3, das schneller, kleiner, besser zu pflegen und leichter nativ nutzbar werden solle. Wie genau will das Vue-Team diese Ziele also erreichen?

Vue.js 3: Die Performance

Hinsichtlich der Performance soll das virtuelle DOM komplett neu geschrieben werden. Dadurch solle eine um 100 Prozent kürzere Mounting- und Patching-Zeit erreicht werden. Auch der Overhead zur Laufzeit soll verringert werden. Dazu will das Vue-Team mit Hints zur Compile-Time arbeiten und nicht benötigte konditionale Branches sollen künftig übersprungen werden. Optimiert werden soll auch die Slots-Generation, um unter anderem unnötiges erneutes Rendering in Parent-Child-Abhängigkeiten zu vermeiden. Außerdem soll Vue.js 3 für Inline Handler, Static Properties und Static Trees mit Hosting arbeiten. So sollen beispielsweise keine vollständigen Trees und Nodes, aber weiterhin Children gepatched werden. Vue.js 3 soll außerdem einen Proxy-basierten Observation-Mechanismus bekommen, der eine volle Sprachabdeckung bietet. Wegfallen soll Object.defineProperty, das durch einen nativen Proxy ersetzt wird.

Auch interessant: Vue.js 3: Re-Write in TypeScript

Evan You verspricht in seiner Präsentation, dass Vue.js 3 doppelt so schnell werden soll, dabei aber nur die Hälfte des Speicherplatzes einnehmen werde. Diese Aussage untermauerte er mit einem Benchmark eines ersten Prototypen von Vue 3. Für das Rendering von 3000 stateful Component Instances ergab sich mit Vue 2.5 eine Scripting-Zeit von 284.5ms, für den Vue-3-Prototypen lag der Wert bei 126.2ms

Neue APIs für Vue 3

You äußerte sich auch zu den Maßnahmen, die zur einer Verkleinerung der Größe von Vue.js selbst führen sollen. Einen zentralen Aspekt stellt hier das Tree-Shaking dar, das künftig auf integrierte Komponenten, Template Directive Runtime Helpers und Utility Functions anwendbar sein werde. Die Core Runtime soll künftig auf eine Größe von etwa 10kb (gzip) kommen. Zur besseren Wartbarkeit der Library wird die bereits bekannte Umstellung auf TypeScript vorgenommen. Außerdem wird der Aufbau von Vue.js 3 anders sein als bei den Vorgängerversionen. In Zukunft wolle man auf von einander entkoppelte Packages für die einzelnen Bestandteile des Frameworks setzen. Auch der Compiler wird neu geschrieben und soll künftig als Schnittstelle für einen besseren IDE-Support dienen.

Um Vue.js 3 besser nativ ansprechen zu können, wird die Version ein Custom Render API erhalten. Dazu führt You in seiner Präsentation folgenden Beispielcode an:

 
import { createRenderer } from '@vue/runtime-core'

const { render } = createRenderer({
 nodeOps
 pacthData
})

Auch ein Reactivity API soll Entwicklern in Vue.js 3 zugänglich gemacht werden. Der TypeScript-Support wird mit TSX unterstützt. Darüber hinaus sollen künftig in weiteren Warnungs-Kontexten Traces zur Verfügung stehen.

Bereits bekannt ist das Hooks API, das Evan You anhand des Entwurfs für React Hooks kürzlich auf GitHub vorgestellt hatte. Im Rahmen seiner Präsentation zu Vue.js 3 stellte er Vue Hooks nun als experimentelles API für Vue.js 3 vor. Ebenfalls als experimentelles Feature ist unter anderem ein Time Slicing Support geplant.

Weitere Informationen zu Vue.js 3 können der Präsentation von Evan You entnommen werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

1 Kommentar auf "Vue.js 3: Details zu Plänen für das JavaScript-Framework präsentiert"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Markus
Gast

Wie wollen die das schaffen, künftig für Mounting und Patching gar keine Zeit mehr zu benötigen?

X
- Gib Deinen Standort ein -
- or -