onlinewachsen.de

React

React hat die Art, wie Benutzeroberflächen gebaut werden, grundlegend verändert. Statt Seiten von Hand zu manipulieren, beschreibt man den gewünschten Zustand – React kümmert sich um den Rest.

Definition
React ist eine Open-Source-JavaScript-Bibliothek zur Entwicklung von Benutzeroberflächen, die 2013 von Meta veröffentlicht wurde. React führte das Konzept der komponentenbasierten UI-Entwicklung in den Mainstream ein: Die Oberfläche wird aus wiederverwendbaren, unabhängigen Komponenten zusammengesetzt, die ihren eigenen Zustand verwalten. React ist heute die meistgenutzte Frontend-Bibliothek der Welt und die Grundlage für Frameworks wie Next.js.

Das Kernprinzip: Komponenten und Zustand

Vor React wurde die DOM-Manipulation direkt mit JavaScript oder jQuery vorgenommen. Das bedeutete: Entwickler mussten selbst verfolgen, welche Teile der Seite sich bei welchem Ereignis wie ändern. Bei komplexen Anwendungen wurde das schnell unübersichtlich und fehleranfällig.

React dreht diesen Ansatz um. Statt zu beschreiben wie sich die UI ändern soll, beschreibt man was die UI zu einem bestimmten Zeitpunkt darstellen soll. React berechnet dann selbst, welche Änderungen im DOM notwendig sind – über den sogenannten Virtual DOM.

Das React-Prinzip

UI = f(state). Die Benutzeroberfläche ist eine Funktion des aktuellen Zustands. Ändert sich der Zustand, berechnet React automatisch die minimalen notwendigen DOM-Änderungen und rendert die betroffenen Komponenten neu. Entwickler denken nicht mehr in DOM-Operationen, sondern in Zustandsübergängen.

Die wichtigsten Konzepte

JSX
JSX
JavaScript XML – eine Syntaxerweiterung, die HTML-ähnlichen Code direkt in JavaScript ermöglicht. JSX wird vom Compiler in reguläres JavaScript übersetzt. Macht Komponentenstruktur lesbar und intuitiv.
Props
Props (Properties)
Daten, die von einer übergeordneten Komponente an eine untergeordnete weitergegeben werden. Props sind unveränderlich – die empfangende Komponente kann sie nur lesen, nicht schreiben.
State
State (Zustand)
Interne, veränderliche Daten einer Komponente. Ändert sich der State, rendert React die Komponente automatisch neu. Verwaltet mit dem Hook useState.
Hooks
Hooks
Funktionen, die Komponenten Zugriff auf React-Funktionalität geben. Die wichtigsten: useState für Zustandsverwaltung, useEffect für Seiteneffekte, useContext für geteilten Zustand.
vDOM
Virtual DOM
Eine im Arbeitsspeicher gehaltene Kopie des echten DOM. React vergleicht bei jeder Zustandsänderung den neuen Virtual DOM mit dem alten und aktualisiert nur die tatsächlich veränderten Teile des echten DOM.

Alles ist eine Komponente

In React wird jede UI-Einheit als Komponente modelliert – von einem einzelnen Button bis zur gesamten Seite. Komponenten können ineinandergeschachtelt werden und bilden so einen Komponentenbaum:

Prinzip
Wiederverwendbarkeit

Eine Komponente wird einmal definiert und beliebig oft eingesetzt. Eine Button-Komponente mit unterschiedlichen Props ergibt unterschiedliche Buttons – ohne Code-Duplikation.

Prinzip
Kapselung

Jede Komponente verwaltet ihre eigene Logik, ihren eigenen Zustand und ihr eigenes Styling. Änderungen an einer Komponente beeinflussen andere Komponenten nicht.

Prinzip
Komposition

Komplexe UIs entstehen durch das Zusammensetzen einfacher Komponenten. Eine Seite ist eine Komponente, die aus Abschnitt-Komponenten besteht, die aus Card-Komponenten bestehen.

Prinzip
Unidirektionaler Datenfluss

Daten fließen immer von oben nach unten – von Eltern- zu Kindkomponenten via Props. Das macht den Zustandsfluss vorhersehbar und leicht nachvollziehbar.

Das React-Ökosystem

React selbst ist bewusst schlank gehalten. Für alles, was über reine UI-Darstellung hinausgeht, gibt es ein breites Ökosystem etablierter Bibliotheken:

AufgabePopuläre LösungHinweis
RoutingReact Router, Next.js App RouterBei Next.js eingebaut – kein separates Paket nötig
Globaler ZustandZustand, Redux Toolkit, JotaiZustand empfohlen für neue Projekte – einfach und performant
Server-State / DatenabrufTanStack Query, SWRCaching, Refetching und Loading-States out of the box
FormulareReact Hook Form, FormikReact Hook Form hat weniger Re-renders und bessere Performance
StylingTailwind CSS, CSS Modules, styled-componentsTailwind CSS dominiert neue Projekte
Komponentenbibliothekenshadcn/ui, Radix UI, MUIshadcn/ui ist kopierbasiert – kein Paket, volle Kontrolle

React im Vergleich zu Alternativen

Stärken von React
  • Größtes Ökosystem und Community aller Frontend-Bibliotheken
  • Sehr flexible Architektur – kein erzwungenes Meinungsgerüst
  • Basis für Next.js, Remix und weitere produktionsreife Frameworks
  • Erstklassiger TypeScript-Support
  • React Server Components für serverseitiges Rendering ohne Client-JavaScript
Schwächen von React
  • Nur eine UI-Bibliothek – kein vollständiges Framework wie Angular
  • Viele Entscheidungen über Routing, State und Datenabruf bleiben dem Team überlassen
  • Lernkurve bei fortgeschrittenen Konzepten wie Server Components und Concurrent Mode
  • Bundle-Größe ohne Optimierung höher als bei Vue oder Svelte
React vs. Vue vs. Svelte

Vue ist zugänglicher und hat eine klarere Konvention – gut für Teams ohne React-Erfahrung. Svelte kompiliert zu nativem JavaScript ohne Virtual DOM und erzeugt kleinere Bundles. React gewinnt durch Ökosystem, Jobmarkt und Framework-Unterstützung. Für professionelle Webprojekte mit Wachstumsambitionen ist React heute die sicherste Wahl.

Wann ist React die richtige Wahl?

  • Komplexe, interaktive Benutzeroberflächen
    Dashboards, Web-Apps, SaaS-Produkte und alle Anwendungen mit viel Zustandslogik und Nutzerinteraktion profitieren von Reacts komponentenbasiertem Ansatz.
  • Projekte mit Next.js
    Wer Next.js einsetzt, arbeitet automatisch mit React. Die Kenntnis der React-Grundlagen ist Voraussetzung für effektives Arbeiten mit Next.js.
  • Teams mit mehreren Entwicklern
    Reacts Komponentenstruktur und die klare Trennung von Verantwortlichkeiten erleichtern die parallele Arbeit mehrerer Entwickler an derselben Codebasis.
  • Langfristig gepflegte Projekte
    Reacts starkes Ökosystem, Metas Rückendeckung und die große Community garantieren langfristige Unterstützung und regelmäßige Updates.

Häufige Fragen zu React

Ist React ein Framework oder eine Bibliothek?
+

React ist offiziell eine Bibliothek – genauer gesagt eine UI-Bibliothek. Es löst gezielt ein Problem: die Darstellung und Aktualisierung von Benutzeroberflächen. Alles andere – Routing, Datenabruf, Zustandsverwaltung – überlässt React dem Entwickler oder spezialisierten Bibliotheken. Ein vollständiges Framework wie Angular oder Next.js trifft diese Entscheidungen hingegen selbst und gibt eine Gesamtstruktur vor.

Was ist der Unterschied zwischen React und React DOM?
+

React ist der Kern – es enthält die Logik für Komponenten, Hooks und den Virtual DOM. React DOM ist das Paket, das React mit dem Browser-DOM verbindet und das Rendering im Browser übernimmt. Diese Trennung ermöglicht es, React auch für andere Ziele einzusetzen – etwa React Native für mobile Apps, das statt React DOM eine eigene native Rendering-Schicht verwendet.

Was sind Hooks und warum wurden sie eingeführt?
+

Hooks wurden mit React 16.8 eingeführt und ermöglichen es, Zustand und andere React-Funktionen in Funktionskomponenten zu nutzen – ohne Klassen schreiben zu müssen. Vor Hooks mussten zustandsbehaftete Komponenten als Klassen implementiert werden, was umständlich und fehleranfällig war. Heute sind Funktionskomponenten mit Hooks der Standard – Klassenkomponenten gelten als veraltet, werden aber weiterhin unterstützt.

Muss ich Redux für die Zustandsverwaltung in React lernen?
+

Nein. Redux war lange der Standard für globalen Zustand in React-Anwendungen, gilt aber heute als übermäßig komplex für die meisten Projekte. Moderne Alternativen wie Zustand oder Jotai sind deutlich schlanker und für neue Projekte empfehlenswerter. Für Server-State – also Daten, die von einer API abgerufen werden – ist TanStack Query die bessere Lösung. Redux Redux Toolkit bleibt relevant für sehr große, komplexe Anwendungen mit strengen Anforderungen an Vorhersehbarkeit.

Was ist der Unterschied zwischen React und React Native?
+

React ist für Webanwendungen im Browser. React Native überträgt das gleiche Komponentenmodell auf native mobile Apps für iOS und Android. Statt HTML-Elemente rendert React Native native UI-Elemente des jeweiligen Betriebssystems. Der Code ist nicht identisch, aber die Konzepte – Komponenten, Props, State, Hooks – sind dieselben. Wer React beherrscht, hat eine deutlich flachere Lernkurve bei React Native.

Abschnitte

onlinewachsen.de