Was bedeutet React
React ist eine leistungsstarke JavaScript-Bibliothek (verwaltet von Facebook) zur Erstellung von Benutzeroberflächen. Einige Jahre nach der Veröffentlichung stellte das React- Team (siehe auch Team Seminare) React (mehr Infos React Schulung) Native vor, ein Werkzeug zur Erstellung hybrider mobiler Anwendungen für iOS (mehr dazu iOS Schulungen) und Android (mehr Infos Android Schulung) unter Verwendung von JavaScript (mehr dazu JavaScript Schulung) .
Die Vorteile:
Deklarative API in React
React bietet eine deklarative API, so dass Sie sich nicht darum kümmern müssen, was sich bei jeder Aktualisierung genau ändert. Das macht das Schreiben von Anwendungen sehr viel einfacher, aber es ist vielleicht nicht offensichtlich, wie dies in React implementiert ist.
Wenn Sie React verwenden, können Sie sich die render()-Funktion zu einem bestimmten Zeitpunkt als das Erstellen eines Baums von React-Elementen vorstellen. Bei der nächsten Aktualisierung des Zustands oder der Requisiten gibt diese render()-Funktion einen anderen Baum von React-Elementen zurück. React muss dann herausfinden, wie die Benutzeroberfläche effizient aktualisiert werden kann, damit sie dem neuesten Baum entspricht.
Es gibt einige generische Lösungen für dieses algorithmische Problem der Generierung der Mindestanzahl von Operationen zur Umwandlung eines Baumes in einen anderen. Die Algorithmen nach dem Stand der Technik haben jedoch eine Komplexität in der Größenordnung von O(n3), wobei n die Anzahl der Elemente im Baum ist.
Würden wir dies in React verwenden, würde die Anzeige von 1000 Elementen in der Größenordnung von einer Milliarde Vergleichen erfordern. Dies ist viel zu teuer. Stattdessen implementiert React einen heuristischen O(n)-Algorithmus.
Optimierung in React
Intern verwendet React mehrere clevere Techniken, um die Anzahl der kostspieligen DOM-Operationen zu minimieren, die zur Aktualisierung der Benutzeroberfläche erforderlich sind. Bei vielen Anwendungen führt die Verwendung von React zu einer schnellen Benutzeroberfläche, ohne dass viel Arbeit in die spezifische Optimierung der Leistung gesteckt werden muss. Nichtsdestotrotz gibt es mehrere Möglichkeiten, wie Sie Ihre React-Anwendung beschleunigen können.
Wenn Sie Benchmarking durchführen oder Performance-Probleme in Ihren React-Anwendungen haben, stellen Sie sicher, dass Sie mit dem minimalen Produktions-Build testen.
Standardmäßig enthält React viele hilfreiche Warnungen. Diese Warnungen sind bei der Entwicklung sehr nützlich. Sie machen React jedoch größer und langsamer, so dass Sie sicherstellen sollten, dass Sie die Produktionsversion verwenden, wenn Sie die Anwendung bereitstellen.
Context in React
Context dient der gemeinsamen Nutzung von Daten, die für einen Baum von React-Komponenten als "global" angesehen werden können, wie z.B. der aktuelle authentifizierte Benutzer, das Thema oder die bevorzugte Sprache.
Der Kontext bietet eine Möglichkeit, Daten durch den Komponentenbaum zu leiten, ohne dass Requisiten auf jeder Ebene manuell weitergegeben werden müssen.
In einer typischen React-Anwendung werden die Daten über Requisiten von oben nach unten (von Eltern an Kinder) weitergegeben, was jedoch für bestimmte Arten von Requisiten (z.B. Ländereinstellung, UI-Thema), die von vielen Komponenten innerhalb einer Anwendung benötigt werden, umständlich sein kann. Der Kontext bietet eine Möglichkeit, Werte wie diese zwischen Komponenten auszutauschen, ohne dass eine Requisite explizit durch jede Ebene des Baums geleitet werden muss.
Integration in React
React kann in jeder Webanwendung verwendet werden. Es kann in andere Anwendungen eingebettet werden, und mit ein wenig Sorgfalt können auch andere Anwendungen in React eingebettet werden. Hier werden einige der gebräuchlicheren Anwendungsfälle untersucht, wobei der Schwerpunkt auf der Integration mit jQuery (siehe jQuery Seminare) und Backbone liegt, aber die gleichen Ideen lassen sich auch auf die Integration von Komponenten mit jedem vorhandenen Code anwenden.
Backbone-Ansichten verwenden in der Regel HTML-Strings oder String erzeugende Vorlagenfunktionen, um den Inhalt für ihre DOM-Elemente zu erstellen. Auch dieser Prozess kann durch das Rendern einer React-Komponente ersetzt werden.
Allmähliche Upgrades
In den letzten sieben Jahren waren die Upgrades von React "alles oder nichts". Entweder Sie bleiben auf einer alten Version, oder Sie aktualisieren Ihre gesamte Anwendung auf eine neue Version. Dazwischen gab es kein Dazwischen.
Das hat bis jetzt funktioniert, aber wir stoßen an die Grenzen der "Alles-oder-Nichts"-Upgrade-Strategie. Einige API-Änderungen, z.B. das Verwerfen der alten Kontext-API, lassen sich unmöglich automatisiert durchführen. Auch wenn die meisten Anwendungen, die heute geschrieben werden, sie nie benutzen, unterstützen wir sie dennoch in React. Wir müssen uns entscheiden, ob wir sie in React auf unbestimmte Zeit unterstützen oder ob wir einige Anwendungen auf einer alten Version von React zurücklassen. Beide Optionen sind nicht sehr gut.
React und SEO
Single-Page-Anwendungen (SPAs) sind Webanwendungen (mehr dazu Webanwendungen Schulung) , die mit React erstellt wurden. Diese Webapplikationen bestehen aus nur einer Seite, die einmal geladen wird. Alle anderen Informationen werden bei Bedarf dynamisch geladen. Im Gegensatz zu herkömmlichen mehrseitigen Anwendungen sind SPAs schnell, reaktionsschnell und bieten den Benutzern eine reibungslose lineare Erfahrung.
Trotz all dieser Vorteile für Endbenutzer haben SPAs jedoch eine erhebliche Einschränkung in Bezug auf SEO (siehe SEO Schulung) . Solche Webanwendungen können Inhalte liefern, wenn die Seite bereits geladen ist. Wenn ein Bot die Seite crawlt, obwohl der Inhalt noch nicht geladen wurde, sieht der Bot eine leere Seite. Ein erheblicher Teil der Seite wird nicht indiziert. Daher wird Ihre Website in den Suchergebnissen eine viel niedrigere Platzierung erhalten.
Pre-Rendering ist ein üblicher Ansatz, um sowohl ein- als auch mehrseitige Webanwendungen SEO-freundlich zu gestalten. Weitergehendes Knowhow wird in den SEO Schulungen vermittelt.
Das Pre-Rendering wird verwendet, wenn Such-Bots Ihre Seiten nicht korrekt darstellen können. In diesen Fällen können Sie Pre-Renderer verwenden: spezielle Programme, die Anfragen an Ihre Website abfangen und, wenn die Anfrage von einem Bot stammt, eine statische HTML-Version Ihrer Website im Cache speichern. Wenn die Anfrage von einem Benutzer kommt, wird die übliche Seite geladen.
Dieser Ansatz, Ihre Website SEO-freundlich zu gestalten, hat folgende Vorteile:
Beim serverseitigen Rendering erhalten Browser und Google-Bots HTML-Dateien mit dem gesamten Inhalt. Google-Bots können die Seite ordnungsgemäß indizieren und sie höher einstufen.
Das serverseitige Rendering ist der einfachste Weg, eine SEO-freundliche React-Website zu erstellen. Wenn Sie jedoch eine SPA erstellen möchten, die auf dem Server gerendert werden soll, müssen Sie eine zusätzliche Ebene von Next.js (mehr dazu Next.js Seminar) hinzufügen.
Die Vorteile:
- Dank der komponentenbasierten Architektur von React ist es einfach, Code wiederzuverwenden. Die Pflege großer Projekte und das Debugging wird durch wiederverwendbare Komponenten erleichtert.
- Dank CodeMods ist die Migration (mehr Infos Migration Schulung) von älteren zu neueren Versionen von React einfach.
- React kann leicht mit anderen Frameworks wie Angular (mehr dazu Angular Schulungen) integriert werden.
- Dieses Tool ermöglicht es Entwicklern, direkt mit Komponenten zu arbeiten, und verwendet einen einseitig nach unten gerichteten Datenfluss anstelle von Datenbindung. In einer solchen Struktur können untergeordnete Elemente die übergeordneten Daten nicht beeinflussen. Dadurch wird sichergestellt, dass Änderungen an Unterstrukturen sich nicht auf die Eltern auswirken, was den Code stabil macht.
- Eine Fülle von Tools von Drittanbietern und eine Browser-Erweiterung können die Entwicklung von Anwendungen erleichtern.
- Dank der Unterstützung für serverseitiges Rendering ist React eine gute Lösung für inhaltsorientierte Anwendungen.
- Viele Entwickler heben die Flexibilität, Skalierbarkeit und Leistung von React hervor.
- Sein nicht verabschiedeter Status kann zu Streitigkeiten innerhalb eines Entwicklungsteams bei der Wahl des richtigen Programmierungsansatzes führen.
- React verwendet JSX, eine Syntaxerweiterung zum Mischen von HTML (mehr Infos HTML Training) und JavaScript. Aufgrund seiner Komplexität betrachten einige Entwickler JSX als eine Barriere, insbesondere für Neulinge.
- Diese Bibliothek benötigt eine breite Palette von "Montagewerkzeugen", um ordnungsgemäß zu funktionieren und mit anderen Webentwicklungswerkzeugen kompatibel zu sein.
Deklarative API in React
React bietet eine deklarative API, so dass Sie sich nicht darum kümmern müssen, was sich bei jeder Aktualisierung genau ändert. Das macht das Schreiben von Anwendungen sehr viel einfacher, aber es ist vielleicht nicht offensichtlich, wie dies in React implementiert ist.
Wenn Sie React verwenden, können Sie sich die render()-Funktion zu einem bestimmten Zeitpunkt als das Erstellen eines Baums von React-Elementen vorstellen. Bei der nächsten Aktualisierung des Zustands oder der Requisiten gibt diese render()-Funktion einen anderen Baum von React-Elementen zurück. React muss dann herausfinden, wie die Benutzeroberfläche effizient aktualisiert werden kann, damit sie dem neuesten Baum entspricht.
Es gibt einige generische Lösungen für dieses algorithmische Problem der Generierung der Mindestanzahl von Operationen zur Umwandlung eines Baumes in einen anderen. Die Algorithmen nach dem Stand der Technik haben jedoch eine Komplexität in der Größenordnung von O(n3), wobei n die Anzahl der Elemente im Baum ist.
Würden wir dies in React verwenden, würde die Anzeige von 1000 Elementen in der Größenordnung von einer Milliarde Vergleichen erfordern. Dies ist viel zu teuer. Stattdessen implementiert React einen heuristischen O(n)-Algorithmus.
Optimierung in React
Intern verwendet React mehrere clevere Techniken, um die Anzahl der kostspieligen DOM-Operationen zu minimieren, die zur Aktualisierung der Benutzeroberfläche erforderlich sind. Bei vielen Anwendungen führt die Verwendung von React zu einer schnellen Benutzeroberfläche, ohne dass viel Arbeit in die spezifische Optimierung der Leistung gesteckt werden muss. Nichtsdestotrotz gibt es mehrere Möglichkeiten, wie Sie Ihre React-Anwendung beschleunigen können.
Wenn Sie Benchmarking durchführen oder Performance-Probleme in Ihren React-Anwendungen haben, stellen Sie sicher, dass Sie mit dem minimalen Produktions-Build testen.
Standardmäßig enthält React viele hilfreiche Warnungen. Diese Warnungen sind bei der Entwicklung sehr nützlich. Sie machen React jedoch größer und langsamer, so dass Sie sicherstellen sollten, dass Sie die Produktionsversion verwenden, wenn Sie die Anwendung bereitstellen.
Context in React
Context dient der gemeinsamen Nutzung von Daten, die für einen Baum von React-Komponenten als "global" angesehen werden können, wie z.B. der aktuelle authentifizierte Benutzer, das Thema oder die bevorzugte Sprache.
Der Kontext bietet eine Möglichkeit, Daten durch den Komponentenbaum zu leiten, ohne dass Requisiten auf jeder Ebene manuell weitergegeben werden müssen.
In einer typischen React-Anwendung werden die Daten über Requisiten von oben nach unten (von Eltern an Kinder) weitergegeben, was jedoch für bestimmte Arten von Requisiten (z.B. Ländereinstellung, UI-Thema), die von vielen Komponenten innerhalb einer Anwendung benötigt werden, umständlich sein kann. Der Kontext bietet eine Möglichkeit, Werte wie diese zwischen Komponenten auszutauschen, ohne dass eine Requisite explizit durch jede Ebene des Baums geleitet werden muss.
Integration in React
React kann in jeder Webanwendung verwendet werden. Es kann in andere Anwendungen eingebettet werden, und mit ein wenig Sorgfalt können auch andere Anwendungen in React eingebettet werden. Hier werden einige der gebräuchlicheren Anwendungsfälle untersucht, wobei der Schwerpunkt auf der Integration mit jQuery (siehe jQuery Seminare) und Backbone liegt, aber die gleichen Ideen lassen sich auch auf die Integration von Komponenten mit jedem vorhandenen Code anwenden.
Backbone-Ansichten verwenden in der Regel HTML-Strings oder String erzeugende Vorlagenfunktionen, um den Inhalt für ihre DOM-Elemente zu erstellen. Auch dieser Prozess kann durch das Rendern einer React-Komponente ersetzt werden.
Allmähliche Upgrades
In den letzten sieben Jahren waren die Upgrades von React "alles oder nichts". Entweder Sie bleiben auf einer alten Version, oder Sie aktualisieren Ihre gesamte Anwendung auf eine neue Version. Dazwischen gab es kein Dazwischen.
Das hat bis jetzt funktioniert, aber wir stoßen an die Grenzen der "Alles-oder-Nichts"-Upgrade-Strategie. Einige API-Änderungen, z.B. das Verwerfen der alten Kontext-API, lassen sich unmöglich automatisiert durchführen. Auch wenn die meisten Anwendungen, die heute geschrieben werden, sie nie benutzen, unterstützen wir sie dennoch in React. Wir müssen uns entscheiden, ob wir sie in React auf unbestimmte Zeit unterstützen oder ob wir einige Anwendungen auf einer alten Version von React zurücklassen. Beide Optionen sind nicht sehr gut.
React und SEO
Single-Page-Anwendungen (SPAs) sind Webanwendungen (mehr dazu Webanwendungen Schulung) , die mit React erstellt wurden. Diese Webapplikationen bestehen aus nur einer Seite, die einmal geladen wird. Alle anderen Informationen werden bei Bedarf dynamisch geladen. Im Gegensatz zu herkömmlichen mehrseitigen Anwendungen sind SPAs schnell, reaktionsschnell und bieten den Benutzern eine reibungslose lineare Erfahrung.
Trotz all dieser Vorteile für Endbenutzer haben SPAs jedoch eine erhebliche Einschränkung in Bezug auf SEO (siehe SEO Schulung) . Solche Webanwendungen können Inhalte liefern, wenn die Seite bereits geladen ist. Wenn ein Bot die Seite crawlt, obwohl der Inhalt noch nicht geladen wurde, sieht der Bot eine leere Seite. Ein erheblicher Teil der Seite wird nicht indiziert. Daher wird Ihre Website in den Suchergebnissen eine viel niedrigere Platzierung erhalten.
Pre-Rendering ist ein üblicher Ansatz, um sowohl ein- als auch mehrseitige Webanwendungen SEO-freundlich zu gestalten. Weitergehendes Knowhow wird in den SEO Schulungen vermittelt.
Das Pre-Rendering wird verwendet, wenn Such-Bots Ihre Seiten nicht korrekt darstellen können. In diesen Fällen können Sie Pre-Renderer verwenden: spezielle Programme, die Anfragen an Ihre Website abfangen und, wenn die Anfrage von einem Bot stammt, eine statische HTML-Version Ihrer Website im Cache speichern. Wenn die Anfrage von einem Benutzer kommt, wird die übliche Seite geladen.
Dieser Ansatz, Ihre Website SEO-freundlich zu gestalten, hat folgende Vorteile:
- Pre-Rendering-Programme sind in der Lage, alle Arten von modernem JavaScript auszuführen und es in statisches HTML umzuwandeln.
- Pre-Renderer unterstützen alle aktuellen Web-Neuheiten.
- Dieser Ansatz erfordert minimale oder gar keine Änderungen an der Codebasis.
Beim serverseitigen Rendering erhalten Browser und Google-Bots HTML-Dateien mit dem gesamten Inhalt. Google-Bots können die Seite ordnungsgemäß indizieren und sie höher einstufen.
Das serverseitige Rendering ist der einfachste Weg, eine SEO-freundliche React-Website zu erstellen. Wenn Sie jedoch eine SPA erstellen möchten, die auf dem Server gerendert werden soll, müssen Sie eine zusätzliche Ebene von Next.js (mehr dazu Next.js Seminar) hinzufügen.