React ist ein JavaScript-Framework bzw. eine Bibliothek für die Entwicklung von Benutzeroberflächen.
„Bibliothek“ ist in diesem Zusammenhang ein sehr passender Begriff:
In einer Bibliothek gibt es eine Auswahl von Büchern, die von Bibliothekaren sortiert wird. Wenn man ein Buch aus der Bibliothek braucht, kann man es einfach über das Bibliothekssystem finden und ausleihen. In einer JavaScript-Library gibt es zwar keine Bücher, dafür aber fertigen Code, auf den man zugreifen und in seinen Projekten verwenden kann.
Im Gegensatz zu kompletten Frontend Frameworks (wie z.B. Angular), die alles gebündelt mitbringen, ist React eine schlanke Bibliothek und verfolgt einen modularen Ansatz durch Auswahl und Einbindung weiterer Bibliotheken.
React vereinfacht Web-Entwicklung
Eine Webanwendung besteht aus Frontend (Client-Side) und Backend (Server-Side).
Frontend: Im Browser wird das Frontend als Benutzeroberfläche dargestellt. Also das, was man sieht und womit man interagiert.
Backend: Das Backend – also der Server hostet die Anwendung und bettet meist noch andere Infrastrukturen ein, wie bspw. eine Datenbank. Das Backend sendet nach Anfragen des Frontends Daten zurück, die von JavaScript interpretiert und aufbereitet werden können.
Um die Benutzeroberfläche einer Web-Anwendung zu programmieren, nutzt man die folgenden drei Technologien:
1. HTML: Gibt die Struktur der UI vor.
2. CSS: Fügt den HTML-Elementen Style (Farben, Abstände etc.) hinzu
3. JavaScript: Reagiert auf die User-Interaktion mit HTML-Elementen und löst weitere Prozesse aus
In der klassischen Webentwicklung wird JavaScript unterstützend in eine HTML-Datei geladen, die den View repräsentiert. Mit React hingegen erstellt man logische Einheiten aus einem Guss: Programmlogik und Views werden direkt in JavaScript definiert, und während des Build-Prozesses werden aus dem React Code letztendlich auch HTML-Elemente generiert. Als React-Entwickler:in profitiert man von diesem Automatismus und hat weniger Implementierungsaufwand.
Die Geschichte von React
React wurde maßgeblich von Facebook entwickelt und 2011 erstmals für den Newsfeed und später 2012 für Instagram eingesetzt. Im Mai 2013 wurde von Facebook angekündigt, React zukünftig als Open-Source-Projekt weiterführen zu wollen.
Anfangs war ein großer Kritikpunkt die verwendete Lizenz, die durch proprietäre und Facebook-spezifische Erweiterungen auffiel. Das ist jedoch nicht mehr der Fall und React steht seit September 2017 in der Version 16.0.0 unter der MIT-Lizenz zur Verfügung.
Das kann React: Single-Page-Apps
In einer Web-Anwendung gibt es verschiedene Ansichten oder Views. Interagiert der Anwender mit der UI – bspw. durch einen Mausklick-, kann sich dadurch die View ändern. Viele User assoziieren eine Änderung der View vielleicht mit einem Seitenwechsel. Das ist teilweise korrekt: Frühere Webanwendungen bestanden typischerweise aus mehreren verschiedenen Seiten. Wenn eine neue View angezeigt werden sollte, musste dafür eine neue Seite geladen werden.
Eine modernere Herangehensweise sind Single-Page-Applications (kurz: SPA). Eine SPA besteht aus verschiedenen Views, die alle in einer einzelnen Seite vorgeladen sind. In einer Multipage-Application sind alle Views einer Anwendung individuell in zu ladenden Seiten definiert. Klickt ein User zum Beispiel auf einen Button in der Navigationsleiste, müsste dafür eine neue Seite geladen werden, dessen Navigationsziel der Button repräsentiert.
Bei einer Single-Page-App ändert sich beim Klick auf diesen Button hingegen die aktive View dynamisch, das Laden einer separaten Seite entfällt.