Ein Jahr React Hooks-API – eine Bilanz
Seite 6: Fazit
Die React Hooks-API kann die Entwicklung von React-Komponenten vereinfachen, da fehleranfälliger und geschwätziger Code, der mit der Klassen-API technisch zwingend notwendig war, entfällt. Die Option, eigene Hooks zu bauen, ist eine gute Möglichkeit, wiederverwendbaren Code zu entwickeln, ohne auf bestehende Patterns wie Render Properties oder Higher-Order-Components setzen zu müssen, die ihrerseits einige Schwächen aufweisen und weder in der Implementierung noch der Verwendung ohne weiteres zu verstehen sind.
Allerdings gibt es einige Besonderheiten beziehungsweise Einschränkungen bei Hooks, die nicht offensichtlich sind, obwohl es sich um reguläre JavaScript-Funktionen handelt. Tom Dale aus dem Entwicklerteam von Ember.js, hat die API deshalb auf Twitter als "weird magical meta-language" bezeichnet, die zwar einerseits ungewohnt, andererseits aber aus React-Sicht folgerichtig sei.
Interessant ist seine in diesem Zusammenhang geäußerte These, demnach React nicht so populär geworden wäre, wenn es die Hooks-API von Anfang an gegeben hätte. Darüber kann man sicherlich streiten und es dürfte schwer sein, für oder gegen den Standpunkt Belege zu finden. Allerdings war eine der Prinzipien von React einmal, dass Entwickler nur JavaScript können müssen, um React zu verstehen.
Deshalb entstand JSX, damit Entwickler keine Template-Sprache erlernen musste (eine Zeitlang gab es sogar eine "echte" High-Level-JavaScript-API, um die UI zu beschreiben). Das hat der hohen Verbreitung von React sicherlich nicht geschadet. Es wird sich zeigen, ob und wie die geänderte Strategie sich auf die künftige Verbreitung von React auswirkt, insbesondere bei neuen Projekten, in denen die Wahl des Frameworks (oder "der Plattform") noch offen ist. Als sicher darf allerdings gelten, dass React durch die Hooks API nicht von heute auf morgen und substanziell an Relevanz in der Webentwicklung verlieren wird.
Dagegen sprechen die nach wie vor hohe Verbreitung von React und die insgesamt positive Aufnahme der Hooks durch die React-Community. Und es wäre auch nicht das erste Mal, dass React sich mit einem unkonventionellen Ansatz durchsetzt und vielleicht sogar zum Trendsetter wird (Pete Hunt, damals noch im React-Team, hat sogar einen Talk über React mit "Rethinking Best Practices" betitelt, in dem er ganz offensiv mit dem Thema umgeht).
Auch wenn React die Klassen-API weiterhin unterstützt, und in der Dokumentation sogar explizit davon abrät, bestehende Komponenten grundlos auf die Hooks-API umzustellen, können Entwickler davon ausgehen, dass die Hooks-API die Zukunft von React ist. In einem Blogbeitrag zur Veröffentlichung der Hooks-API schreibt Dan Abramov: "Hooks represent our vision for the future of React." Und im Zusammenhang mit dem neuen Concurrent-Render-Modus und Suspense for Data Fetching sind bereits erste (Vorab-)Features verfügbar, die Entwickler sogar ausschließlich nur über die Hooks-API verwenden können (useTransition
-Hook) und somit in Klassenkomponenten nicht eingesetzt werden können.
Vorbildlich ist in jedem Fall, dass die Hooks-API abwärtskompatibel in React eingeführt wurde, sodass Entwickler ihre Projekte problemlos bei Bedarf Schritt für Schritt umstellen können.
Ob die Euphorie um die Hooks-API nun gerechtfertigt ist, muss jeder selbst entscheiden. Auf jeden Fall wird es auch künftig genügend Diskussionsstoff darüber geben, wie React-Anwendungen denn nun "richtig" gebaut werden.
Nils Hartmann
ist freiberuflicher Softwareentwickler, Trainer und Coach aus Hamburg. Er programmiert in Java und JavaScript und berät und schult Teams beim Ein- und Umstieg in die Entwicklung von Single-Page-Anwendungen mit den Schwerpunkten React, TypeScript und GraphQL. Nils ist Autor des Buches "React – Grundlagen, fortgeschrittene Techniken, Praxistipps", dpunkt-Verlag 2019).
(bbo)