jQuery und React im Überblick
Was ist React?
Facebook führte React 2009 als Frontend-JavaScript-Framework für die damaligen Herausforderungen von Frontend-Entwicklern ein. Die Hoffnung war, dass React die Entwicklung von Single-Page-Anwendungen bzw. SPAs erheblich vereinfachen würde. Was ist jQuery?
jQuery ist eine ältere Dienstbibliothek, die schnell zu Lösungen für einfache Probleme führt. Während das React-Framework auf die schnelle Gestaltung von Benutzeroberflächen ausgerichtet ist, dient jQuery eher als eine Art Universalwerkzeug, das JavaScript-Entwicklern das Leben erleichtert. Die Evolution von JavaScript
JavaScript ist heute viel einfacher zu handhaben, insbesondere seit ECMA International – die Regelungsinstanz für JavaScript-Standards – ECMAScript 6 veröffentlicht hat, den allgemein als EC6 bekannten JavaScript-Standard von 2015.
EC6 brachte grundlegende Änderungen von JavaScript, die den Bedarf an vielen der von jQuery bereitgestellten Lösungen reduzierten. Zwischenzeitlich hatten sich aber ein dynamisches Ökosystem und eine Fülle von Bibliotheken von Drittanbietern etabliert, die jQuerys Stellung als integraler Bestandteil vieler Webanwendungen festigten.
Zudem bietet jQuery ausgefeilte und intuitive Erweiterungsmethoden für DOM-Abfragen (Document Object Model), die JavaScript fehlen, und stellt damit sicher, dass JavaScript-Entwickler jQuery weiterverwenden werden.
Bedauerlicherweise arbeiten React und jQuery nicht nahtlos zusammen. Obwohl es möglich ist, React und jQuery mit Behelfslösungen und sorgfältiger Planung im selben Projekt zu verwenden, ist dieser Ansatz nicht zu empfehlen. Entwickler verwenden jQuery und React in der Regel nur dann in derselben Codebasis, wenn ein außergewöhnlicher Grund vorliegt, wie beispielsweise umfangreicher Legacy-Code, der gepflegt werden muss.
Da React und jQuery völlig unterschiedlichen Zwecken dienen, hängt die Wahl einer der beiden insbesondere von den Zielsetzungen deines Projekts ab.
Mit beliebten Frontend-JavaScript-Frameworks wie React, Vue und Angular sind viele der ursprünglichen Gründe für die Wahl von jQuery hinfällig geworden.
Für einfache Webseiten oder Web-Apps ist jQuery weiterhin eine ausgezeichnete Wahl, insbesondere bei mangelnder Erfahrung mit einem der oben genannten Frontend-Frameworks.
React ist in der Regel für große Anwendungen sinnvoller.
Die unterschiedlichen Zwecke von JavaScript-Bibliotheken
jQuery wurde als schnelle, kleine, funktionsreiche JavaScript-Bibliothek entwickelt, die in erster Linie dazu dient, Aufgaben wie Navigation in HTML-Dokumenten, Manipulation, Event-Handling und Animation zu vereinfachen.
Mit jQuery können JavaScript-Entwickler beispielsweise viele komplexe Aufgaben in einer einzigen Codezeile ausführen. Das folgende JavaScript-Codebeispiel zum Ändern des CSS für alle Paragraphen eines HTML-Dokuments erfordert erstaunliche 33 Zeilen an Code. JavaScript-Codebeispiel zur Animation der Opazität eines Paragraphen.
Das gleiche Ergebnis lässt sich mit der jQuery-Bibliothek mit nur einer einzigen, intuitiven Codezeile erzielen:
Nur eine Codezeile in jQuery.
Diese einzelne Zeile von jQuery-Code in React umzuwandeln, wäre kein fairer Vergleich. Auch wenn der entsprechende React-Code komplexer ist, ist hier ein Vergleich irrelevant: Die CSS-Standards sind seit der Freigabe von jQuery so weit fortgeschritten, dass dasselbe Ergebnis jetzt auch ohne Code erreichbar ist.
So wurde 2009 die Möglichkeit des Einfügens von Fade-ins direkt in den CSS-Standard aufgenommen. Es dauerte jedoch noch einige Jahre, bis CSS-Übergänge und -Animationen von allen gängigen Browsern unterstützt wurden. Programmierer waren nicht mehr auf JavaScript-Code angewiesen, um Fade-ins zu erstellen, sondern konnten einfach das entsprechende CSS hinzufügen, und der Browser erledigte den Rest. jQuery wurde als Lösung für die damaligen Probleme von Entwicklern konzipiert, die heute aber aufgrund des technologischen Fortschritts nicht mehr gegeben sind.
Facebook schuf React in erster Linie, um die Gestaltung von Benutzeroberflächen zu vereinfachen, insbesondere komplexer Benutzeroberflächen, die ein hervorragendes Nutzererlebnis bieten.
Um einfache Animationen generieren zu können, musst du zunächst das Gerüst für die zugrundeliegende React-App aufbauen. Das geht mit einem gewissen anfänglichen Arbeitsaufwand einher. Sobald das Gerüst steht, sind mit React viel komplexere Dinge als mit jQuery möglich.
Für welche JavaScript-Bibliothek solltest du dich also entscheiden? Die Faustregel lautet:
Verwende jQuery aufgrund seiner Benutzerfreundlichkeit für schnelle JavaScript-Lösungen in vorhandenen Projekten.
Verwende React, wenn du eine ganze App von Grund auf neu erstellen musst, insbesondere große Anwendungen.
💡 In unseren Programmierleitfäden findest du weitere Informationen zu Programmiersprachen und Frameworks:
jQuery und React im Vergleich
Nachfolgend beleuchten wir die 6 wichtigsten Kriterien, die du berücksichtigen solltest, bevor du dich für eine der zwei JavaScript-Bibliotheken entscheidest.
1. DOM-Manipulation
React verwendet ein virtuelles DOM, während jQuery mit dem traditionellen DOM arbeitet. Beides hat Vor- und Nachteile.
Die Bevorzugung eines virtuellen DOM ist auch ein wesentlicher Unterschied zwischen React und Angular, dem Open Source-Frontend-Framework von Google.
Die React-Bibliothek führt alle DOM-Element-Tasks im Speicher aus. Wenn diese Tasks abgeschlossen sind, gibt sie die Änderungen an das physische DOM weiter. Beim Arbeiten mit dem reellen DOM wird mit jeder Änderung eines Elements auch die physische Struktur geändert, was in potenziell langsamerem Code resultieren kann.
React stellt ein umfangreiches Ökosystem von React-Bibliotheken für eine beschleunigte Entwicklung bereit. Es umfasst auch eine weitaus größere Anzahl von npm-Paketen als jQuery. Das bedeutet jedoch nicht unbedingt, dass jQuery weniger Drittanbieter-Bibliotheken zu seiner Unterstützung hat.
jQuery existierte bereits, bevor der Node Package Manager (npm) auf breiter Front eingeführt wurde. npm ist ein Paketmanager, der zur Installation und Verwaltung von in der JavaScript-Entwicklung verwendeten Softwarepaketen oder Bibliotheken eingesetzt wird.
Die jQuery-Funktionalität wird typischerweise durch Hinzufügen von jQuery-Plug-ins über ein zusätzliches