Ein Jahr React Hooks-API – eine Bilanz

Die Community hat die Hooks-API für React als große Neuerung herbeigesehnt. Hält sie, was sie verspricht?

In Pocket speichern vorlesen Druckansicht 25 Kommentare lesen
Ein Jahr React Hooks-API – eine Bilanz

(Bild: Sepp photography/Shutterstock.com)

Lesezeit: 21 Min.
Von
  • Nils Hartmann
Inhaltsverzeichnis

Im Februar 2019 hat die JavaScript-Bibliothek React mit Version 16.8 die erste stabile Ausgabe der Hooks-API veröffentlicht. Bereits Monate zuvor, während der ersten Vorstellung auf der ReactConf in den USA, hatte die Community in den sozialen Medien die API geradezu euphorisch gefeiert.

Woher kommt die Begeisterung? Ist die Klassen-API so schlecht oder die Hooks-API so gut? Und sind die Begeisterungsstürme gerechtfertigt gewesen? Diesen Fragen geht der Artikel auf den Grund: Er stellt die API vor, vergleicht sie mit der Klassen-API, zeigt Konsequenzen aus der Hooks-API und wagt sich an eine Bewertung.

Die Klassen-API in React, die nach wie vor und wohl auch in der Zukunft funktioniert, ist seit Version 0.13 im Januar 2015 Teil von React. Das geschah somit unmittelbar vor der Einführung des nativen Klassensystems in JavaScript (ECMAScript 2015). Zuvor hatten Entwickler Komponenten mit der Funktion React.createClass erzeugt, die eine Art Klasse "simulierten". Ein halbes Jahr nach der Einführung der Klassen-API erlaubte es React 0.14, Komponenten ebenfalls als pure JavaScript-Funktionen zu schreiben. Diese als "stateless function components" bezeichneten Komponenten sollten mit weniger Code als die Klassenkomponenten auskommen, konnten dafür aber keinen Zustand (State) enthalten. Lifecycle-Funktionen unterstützten sie ebenfalls nicht.

Die Annahme war, dass die meisten Komponenten in React-Anwendungen ohnehin zustandslos sind. Während es dadurch zu Diskussionen kam, welche Komponenten-API für welchen Anwendungsfall sinnvoll ist, kamen schnell Wünsche auf, die funktionale API möge sämtliche Features der Klassen-API anbieten. Solche Experimente gab es 2014 in dem GitHub-Repository react-future.

Gewinnspiel zum React-Buch des Autors
Ein Jahr React Hooks-API – eine Bilanz

Nils Hartmann hat zusammen mit Oliver Zeigermann im Dezember 2019 die zweite, überarbeitete und erweiterte Auflage des Buchs "React: Grundlagen, fortgeschrittene Techniken und Praxistipps" im dpunkt.verlag veröffentlicht. Um das zu feiern, verlost heise Developer in Kooperation mit dpunkt.verlag drei Exemplare. Der Einsendeschluss für das Gewinnspiel ist vorbei – die Gewinner werden umgehend benachrichtigt.

Im Oktober 2018 war es denn so weit: Das React-Team stellte auf der React Conf die Hooks-API vor. Dabei waren nicht nur der Zeitpunkt der Vorstellung überraschend (sie kam praktisch ohne Vorwarnung), sondern auch die vorgestellte API selbst. Während Klassen im Blogbeitrag zur ersten Beta-Version von React 0.13 noch Euphorie auslösten, schien die Begeisterung im React-Team knapp vier Jahre später Ernüchterung gewichen zu sein. Klassen "verwirren" sowohl Entwickler als auch Maschinen, heißt es jetzt ganz offiziell in der Dokumentation. Beim Entwickeln seien Klassen insbesondere wegen des this-Bindings fehleranfällig und auch für das Tooling, etwa beim Minifizieren des JavaScript-Codes, nicht gut geeignet.