React – Die Bibliothek für eine dynamische und interaktive Benutzeroberfläche

React wird häufig im Zusammenhang mit Web-UI-Frameworks wie Vue.js oder Angular genannt – tatsächlich handelt es sich bei React aber nicht um ein Framework im eigentlichen Sinn. Stattdessen ist es eine vergleichsweise kleine und einfache Programmbibliothek zum Rendern webbasierter grafischer Oberflächen. Anders als UI-Frameworks verzichtet es auf Konzepte für Datenbindung, Routing, Dependency-Injection und Ähnliches. Das macht React zunächst einmal viel „leichtgewichtiger“ als viele der Alternativen.

Das Modell von React verspricht durch die Konzepte des unidirektionalen Datenflusses und des Virtual DOM den einfachen, aber trotzdem performanten Aufbau komplexer Anwendungen. React bildet aus diesem Grund die Basis für Single-Page-Webanwendungen, kann jedoch auch mit Node.js serverseitig (vor-)gerendert werden.

Ja, im Jahr 2013 war dies schon etwas ziemlich Gutes. Vor allem im Vergleich zum damaligen Angular, dass zwar komfortabel zu benutzen war aber aufgrund einer mäßigen Performance und der fehlenden Skalierbarkeit kaum in der Lage war, komplexe UIs abzubilden. Genau diese Probleme hat React damals bereits adressiert und führte zu diesem Zweck verschiedene Konzepte aus der funktionalen Programmierung in die UI-Welt ein.

Kurze Zeitreise

React ist die Entwicklung von Jordan Walke, einem Softwareentwickler bei Facebook. Erstmals 2011 für den Facebooks Newsfeed und später für Instagram eingesetzt. Facebook kündigte 2013 an, dass die Weiterführung des Projekts zukünftig als Open-Source stattfindet. Im Oktober 2014 wurde die Lizenz von der anfangs Apache-Lizenz auf die BSD-Lizenz mit zusätzlicher Patentlizenz geändert, welche den Widerruf der Lizenz bei Klagen gegen oder bei Patentstreitigkeiten mit Facebook vorbehält.

Diese unkonventionelle Klausel führte zu einer kontroversen Diskussion. Eine Umformulierung dieser Patentklausel im April 2015 beendete die Auseinandersetzung nicht. Im Juli 2017 kündigte die Apache Software Foundation an, keine Apache-Projekte mehr mit dieser Zusatzlizenz zu erlauben. Entgegen anfänglichen Angaben, nicht von der Klausel abrücken zu wollen, veröffentlichte Facebook im September 2017 React in der Version 16.0.0 unter der MIT-Lizenz. Vielleicht werde ich in der Zukunft noch die verschiedenen Lizenzmodelle etwas näher erläutern.

Fazit

Wie bereits erwähnt, ist es eine sehr spezialisierte und leichtgewichtige Programmbibliothek, sodass man es als einen Baustein von vielen betrachten kann. Da man React zwingend mit anderen Modulen kombinieren muss, um eine vollständige Anwendung zu entwickeln, kann React nicht zu einer systemrelevanten Größe heranwachsen. Gleichzeitig bildet diese Tatsache auch den Nachteil. Bei Angular hat man beispielsweise weniger Aufwand. Doch über Angular werde ich noch später schreiben.

Nicht zu vergessen ist die Integration mit JavaScript. Anders als zum Beispiel in Vue.js oder Angular gibt es in React keinen proprietären Weg, um eine Schleife, eine Bedingung oder eine Datenbindung herzustellen. Stattdessen verwendet React hierfür schlichtweg die Konstrukte, die es in JavaScript ohnehin gibt. Alles in allem ist es eine gute Lösung, mit einer eigenen Philosophie und einer relativ hohen Einstiegshürde, da man sich mit JSX auseinandersetzen muss. Ja, auch ich werde mich in einem zukünftigen Beitrag damit auseinandersetzen 🙂 Aber Einstiegshürden sind ja in der Regel relativ und es lässt sich darüber diskutieren, ob der Einstieg nun leicht oder schwer ist 😉

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.