React

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von React (JavaScript))
Wechseln zu: Navigation, Suche
Dieser Artikel behandelt die Programmbibliothek. Zu weiteren Bedeutungen siehe REACT.
React
Maintainer Facebook
Entwickler Facebook, Instagram und die Gemeinschaft
Erscheinungsjahr 2013
Aktuelle Version 15.5.0[1]
Programmiersprache JavaScript
Kategorie Bibliothek
Lizenz 3-Clause BSD mit Zusatz von Facebook
facebook.github.io/react

React ist eine JavaScript-Bibliothek[2], die ein Grundgerüst für die Ausgabe von User-Interface-Komponenten in HTML zur Verfügung stellt. Komponenten werden in React hierarchisch aufgebaut und in dessen Syntax als selbst definierte HTML-Tags repräsentiert.[3] Das Modell von React verspricht durch die Konzepte des unidirektionalen Datenflusses und des "Virtual Dom" den einfachen, aber trotzdem performanten Aufbau auch komplexer Anwendungen. React bildet typischerweise die Basis für Single-Page-Webanwendungen, kann jedoch auch mittels Node.js serverseitig (vor-)gerendert werden.

Geschichte[Bearbeiten | Quelltext bearbeiten]

React wurde ursprünglich von Jordan Walke, einem Softwareingenieur bei Facebook, entwickelt und 2011 erstmals für Facebooks 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.

Kernkonzepte[Bearbeiten | Quelltext bearbeiten]

Unidirektionaler Datenfluss[Bearbeiten | Quelltext bearbeiten]

In Kombination mit der deklarativen Natur der Komponentendefinition in React soll mittels eines unidirektionalen Datenflussmodells der Aufbau und die Wechselwirkungen zwischen Komponenten vereinfacht werden. Anders als beispielsweise mittels komplexem Event Handling erhält eine Komponente Daten nur über statische Eigenschaften, die dieser übergeben wurden. Eine Komponente kann ihr übergebene Eigenschaften in diesem Modell nicht abändern. Eigenschaften können jedoch übergebene Callback-Funktionen sein und somit die übergeordneten Komponenten beeinflussen.

Virtual DOM und DOM-Diffing[Bearbeiten | Quelltext bearbeiten]

Die Kernidee von React besteht in der Annahme, dass der komplette der betroffenen Komponente untergeordnete Anwendungsbaum bei jeder Änderung einer Eigenschaft der Komponente neu aufgebaut wird. Da es in der Praxis performanceintensiv sein kann, dies z. B. im Webbrowser innerhalb des DOM durchzuführen, wurde das Konzept des "Virtual DOM" geschaffen. Die damit verbundene Technik des "DOM-Diffing" beschreibt das selektive Aktualisieren des DOM auf Basis eines Vergleichs zwischen ursprünglichem und geänderten Virtual DOM.

Als Beispiel kann ein Entwickler bei einer Messaging-Anwendung in einer Inbox davon ausgehen, dass die Auflistung aller Nachrichten und der untenstehende Zähler der Nachrichtenanzahl bei jeder neuen Nachricht komplett neu aufgebaut werden. Das DOM-Diffing sorgt in diesem Fall dafür, dass lediglich die veränderten Teile (in diesem Fall das Ergänzen der neuen Nachricht und das Aktualisieren des Zählers) im DOM aktualisiert werden.

JavaScript syntax extension (JSX)[Bearbeiten | Quelltext bearbeiten]

JSX stellt eine optionale Syntax für die Deklaration von React-Komponenten dar, welche es erlaubt, HTML-Tags und die Tags von React-Komponenten zu vermischen.[4][5]

Kritik[Bearbeiten | Quelltext bearbeiten]

Anders als bei strikten MVC-Modellen wird in React ein komponentenzentriertes Modell vorgeschlagen, welches Logik für Interaktion und Darstellung innerhalb eines Objekts bündelt. Dies wird insbesondere durch die weitverbreitete strikte Trennung zwischen Markup und Logik in Form von Templating-Systemen oft kritisch gesehen.

Referenzen[Bearbeiten | Quelltext bearbeiten]

  1. React Releases
  2. A JavaScript library for building user interfaces - React. Abgerufen am 13. April 2017.
  3. Multiple Components.
  4. JSX in Depth. Abgerufen am 6. September 2016.
  5. Draft: JSX Specification. Abgerufen am 6. September 2016.