Webframework Vue.js 3: Der nächste Meilenstein

Das Webframework Vue.js bietet in Version 3 einige wichtige Änderungen. Der damit verbundene Aufwand bei der Migration lohnt sich für die meisten Anwendungen.

In Pocket speichern vorlesen Druckansicht 11 Kommentare lesen
Lesezeit: 22 Min.
Von
  • Dr. Fabian Deitelhoff
Inhaltsverzeichnis

Vue.js hat in den vergangenen Jahren eine bemerkenswerte Evolution durchlebt. Dabei hat es sich deutlich verändert und ist vom kleinen Webframework, das als Alternative zu klassischen Frameworks angetreten war, zu einer bekannten und beachteten Größe im Webzirkus geworden. Seit dem ersten Release 2014 sind zahlreiche weitere Versionen erschienen. Obwohl im Dezember 2020 Wikipedia Version 2.6.11 vom 13. Dezember 2019 als aktuelle Version aufführt, ist mittlerweile Version 3 als nächster umfassender Meilenstein erschienen. Das gilt zumindest bezüglich der Core-Bibliothek und zahlreicher offizieller Libraries und Tools, denn Vue.js 3 unterliegt einem mehrschrittigen Release-Prozess. Die neue Version mit dem an das japanische Manga angelehnten Namen "One Piece" war über zwei Jahre in der Entwicklung. Mehr als 2600 Commits und über 620 Pull Requests später ist die Version verfügbar.

Vue.js gilt seit jeher als progressives Framework, das einen gestaffelten Einsatz erlaubt: Vue kann zum einen als Bibliothek an einigen Stellen im Projekt zum Einsatz kommen und zum anderen als umfangreiches Webframework ähnlich wie Angular oder React. Diesem schrittweisen Einsatz trägt das häufig neben "progressiv" gegebene Attribut "inkrementell", Rechnung. Zum Verwenden von Vue.js genügt Wissen in JavaScript und HTML. Die einfach gehaltene API gilt vielfach als leichter zu erlernen als Angular oder React, worüber es allerdings ausgedehnte Diskussionen gibt.

Umso spannender ist daher die Frage, in welchen Aspekten sich Vue.js von Version 2 zur Version 3 verändert hat. Über die Entwicklungszeit hinweg standen zahlreiche Funktionen zur Diskussion, von denen es einige in die finale Version geschafft haben. Bei vielen anderen hat die Community unterschiedliche Implementierungen getestet und einige Ideen komplett verworfen. Die neue Version von Vue.js ist immerhin mit dem Versprechen erschienen, noch progressiver zu sein. Gleichzeitig hat sich laut den Release Notes auf GitHub die Performance deutlich verbessert, während sich die Größe der Bibliothek und der Speicherverbrauch verringert haben Das entspricht den Versprechungen, die im Vorfeld die Messlatte für die Version hoch gelegt haben. Seit der ersten Ankündigung zu den Plänen von Vue.js im September 2018 sind zwei Jahre vergangen.

Zunächst gilt es, ein paar grundlegende Unterscheidungen zu erläutern: Im Rahmen des Frameworks gibt es den Vue.js Core, die offiziellen Bibliotheken sowie weitere Bibliotheken und Tools im zugehörigen Ökosystem.

Mit Berichten über die Veröffentlichung von Vue.js am 18. September 2020 ist Vue.js Core gemeint. Diesen Kern stuft das Entwicklerteam nun als stabil ein. Trotzdem bleibt das sogenannte @next-Distribution-Tag noch eine Weile bestehen, das anzeigt, dass der Code für den Core in einem eigenen vue-next genannten Repository auf GitHub verfügbar ist, unter der GitHub-Organisation vuejs, die alle weiteren offiziellen Projekte listet.

Der gesamte Veröffentlichungsprozess zu Vue.js 3 ist mehrschrittig. Nach der Veröffentlichung des Kerns folgen offizielle Bibliotheken wie Vue Router und Vuex. Die Umstellung externer Bibliotheken und Tools externer Entwickler erfolgt in einem parallelen Prozess, auf den das Vue.js-Core-Team keinen großen Einfluss hat.

Die offiziellen Komponenten stehen in ausreichend fortgeschrittenen Versionen zu Verfügung, um stabil zu sein und mit Vue.js 3 zusammenzuarbeiten. Somit lässt sich Vue.js 3 nicht nur ausprobieren, sondern in den meisten Fällen bereits produktiv einsetzen. Ein Vorabcheck der im Projekt eingesetzten Bibliotheken und Tools ist dennoch Pflicht, damit nicht erst bei der Migration ein Showstopper auffällt.

Die Ankündigungen, erste RFC-Dokumente (Request for Comments) und Beispiele zu den geplanten Änderungen für Vue.js 3 haben in der Community mitunter heftige Diskussionen ausgelöst. Nicht alle Akteure sind dabei sachlich geblieben. Kurz: Es sind die Fetzen geflogen.

Das betrifft insbesondere die Spezifikation zur Composition API, die zum ersten Mal im Juni 2019 veröffentlicht wurde. Viele Diskussionen entstanden aus einem Missverständnis heraus. Unter anderem war nicht allen von Anfang an klar, dass die neue API optional ist und nicht die Option-API ersetzen sollte. Beispiele für die Debatte sind auf auf Hacker News, Reddit, Dev.to und Vue School zu finden.

Letztlich zeigen die Reaktionen, dass Änderungen an Frameworks stressig sind und sich eine Community missverstanden oder angegriffen fühlen kann, wenn sich das Verhalten, die Handhabung oder die Zukunftsaussichten eines Frameworks erheblich zu ändern scheinen.