Vue.js, der Underdog unter den JavaScript-Frameworks und der heimliche Liebling vieler Frontend-Entwickler, ist demnächst in Version 3.1 verfügbar. Dieser sogenannte Migration-Build soll mit Vue 2 kompatibel sein – und bietet Möglichkeiten, diese Kompatibilität nach Bedarf zu konfigurieren. Das soll es Entwicklern einfacher machen, eine Vue-2-App auf Vue 3 zu migrieren.
Per Default wird der Migration-Build im Vue-2-Modus laufen, einfach aus dem Grund, dass die meisten – allerdings nicht alle – öffentlichen APIs sich Vue-2-konform verhalten. Der abwärtskompatible Modus erlaubt es Entwicklern, Breaking Changes und Deprecations nacheinander zu bearbeiten, ohne ihre Projekte in einem Anlauf auf Vue 3 upgraden zu müssen. Bei veralteten Strukturen oder Änderungen gibt es in V 3.1 eine Laufzeitwarnung.
Einschränkungen
Das Ganze kommt mit einer Reihe von Einschränkungen. Abdecken soll der Migration-Build öffentlich dokumentiertes Verhalten von Vue 2 und dessen APIs.
- Apps, die sich auf Vue 2s interne APIs oder auf undokumentiertes Verhalten des Releases stützen, sind möglicherweise nicht mit dem Migration-Build verwendbar. In diesem Fall wird ein entsprechendes Refactoring des betreffenden Codes empfohlen.
- Wer seine Anwendung auf dem Migration-Build zum Laufen bekommt, wird sie bereits bevor die Migration komplett abgeschlossen ist in Produktion bringen können. Das bringt einen Performance-Overhead mit sich, der sich aber nicht merklich auf die UX der Anwender auswirken soll. Bei Projekten, die Komponenten-Libraries wie zum Beispiel Vuetify, Element UI oder Quasar verwenden, wird empfohlen, jeweils auf die die Veröffentlichung eines Vue-3-kompatiblen Releases zu warten.
- Wie Vue 3 bietet auch der Migration-Build keine IE11-Unterstützung. Wer die benötigt, muss seine App auf Vue 2 belassen.
- Projekte, die Server Side Rendering nutzen, können Vue 3.1 theoretisch nutzen. Vue 3 verfügt allerdings über keinen Bundle-Renderer mehr, für Server Side Rendering wird empfohlen, auf das Build-Tool Vite aus dem Vue-Ökosystem zurückzugreifen. Wer das Vue.js-Framework Nuxt.js nutzt, sollte vor dem Versuch einer Migration besser den Release von Nuxt 3 abwarten.
tl:dr: Große, sehr komplexe Apps zu upgraden, wird auch mit dem Migration-Build eine Herausforderung bleiben. Für Q3 in 2021 plant das Vue-Core-Team allerdings mehrere Features aus Vue 3, darunter die Composition-API, auf Vue 2.7 zu backporten.
Passend dazu: Was ist eigentlich Vue.js
Weitere Neuerungen
Daneben sind im Release auch einige Neuerungen und Performance-Verbesserungen enthalten. Darunter ein neuer Lifecycle-Hook für die Composition API namens onServerPrefetch und Unterstützung für CompilerOptions auf Komponentenebene. Auch neu in 3.1: Via app.config.compilerOptions sollen Entwickler den Runtime-Compiler konfigurieren können. Nicht zuletzt wurde der Support für KeepAlive – ein Wrapper-Element für dynamische Komponenten – verbessert.
V 3.1 soll unabhängig von V 3.2 entwickelt werden
Veröffentlicht wird der noch in der Betaphase befindliche Migration-Build mit Version 3.1, weitere Überarbeitungen sollen in Form von kleineren, darauf aufsetzenden Minor-Versions-Updates stattfinden. Neuerungen, die eigentlich für Version 3.1 angedacht waren, wurden auf Version 3.2 verschoben. Die Weiterentwicklung des Migration-Builds wollen die Entwickler möglicherweise Ende 2021 beenden. Für Entwickler bedeutet das: Die Migration zum Standard-Build solltet ihr bis dahin nach Möglichkeit abgeschlossen haben.
Erfahrene Entwickler, die bisher noch nicht mit Vue 3 gearbeitet haben, können die Version laut Readme zum GitHub-Projekt außerdem nutzen, um sich mit den Unterschiede zwischen den beiden Major-Versionen vertraut zu machen. Weitere Informationen finden sich im zugehörigen Changelog; im GitHub-Repository des Projekts gibt es ein How-to zum Upgrade-Workflow.
Bitte beachte unsere Community-Richtlinien
Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.
Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.
Dein t3n-Team