Teilen Sie diesen Artikel:

Blog
Aug 07, 20236 min read

React im Überblick - Definition, SPA, Komponenten, Hooks

React im Überblick - Definition, SPA, Komponenten, Hooks

Was ist React

Basierend auf der offiziellen Dokumentation ist React eine deklarative, effiziente und flexible Javascript-Bibliothek zur Erstellung von komponierbaren Benutzeroberflächen. Sie fördert die Erstellung von wiederverwendbaren UI-Komponenten, die Daten darstellen, die sich im Laufe der Zeit ändern.

what is react illustration

Bei React geht es darum, moderne, reaktive Benutzeroberflächen für das Web zu erstellen. Das bedeutet, Einseitenanwendungen zu erstellen. Vielleicht haben Sie schon von der Abkürzung SPA gehört, die für Single-Page-Application steht. Das bedeutet, dass anstelle des alten traditionellen Ansatzes, bei dem jede Seite vom Client geladen wird, der Anfragen an den Server stellt, und der Server die geladene Seite zurückgibt, alles mit der Benutzeroberfläche verbunden ist. Alles, was mit der Benutzeroberfläche verbunden ist, geschieht auf der Client-Seite mit JavaScript. Aber warum React und nicht einfach reines JavaScript? Schauen wir uns ein Beispiel an, wie wir eine App bauen können, in der wir Karten auflisten müssen und eine Aufgabenliste mit einem Dialog löschen können, der uns auffordert, das Löschen zu bestätigen. Wir werden die Lösungen in reinem JavaScript und mit React vergleichen. Im Beispiel auf der linken Seite mit Javascript sehen wir die imperative Lösung, bei der wir unsere App Schritt für Schritt aufbauen. Wir müssen jeden einzelnen Schritt angeben. Zum Beispiel erstellen wir eine Schaltfläche, fügen dieser Schaltfläche einen Ereignis-Listener zu und so weiter und so fort. Bei der deklarativen Programmierung hingegen wird der Code so geschrieben, dass die eigentliche Implementierung durch Hindernisse verborgen wird. Sie verwenden React-Elemente, um React mitzuteilen, welche Funktionen beim Rendern jeder Komponente aufgerufen werden sollen, aber die Bibliothek entscheidet dann, wann sie aufgerufen werden. Nachdem wir unsere Komponente einmal erstellt haben, können wir sie an anderer Stelle in der App mit nur einer einzigen Codezeile wiederverwenden, und in dem hier vorgestellten Beispiel können wir mehrere Aufgabenkartenkomponenten völlig nahtlos erstellen.

Die am häufigsten verwendeten Funktionen in REACT

Funktionale Komponenten von React

react functional components
 

Um die Interaktion auf der Benutzeroberfläche zu gestalten, verwenden wir funktionale Komponenten. Mit Komponenten können wir die Benutzeroberfläche in unabhängige, wiederverwendbare Teile aufteilen und jedes Teil isoliert betrachten. Eine funktionale Komponente ist einfach eine einfache Javascript-Funktion, die props als Argument akzeptiert und ein React-Element zurückgibt. Wir schreiben Komponenten mit einer Erweiterung von JavaScript, die wir JSX nennen. JSX ermöglicht es uns, Javascript-Ausdrücke in HTML-Ausdrücke einzubinden. Dies ist im Grunde nur JavaScript-Code, der einen Wert zurückgibt. Komponenten in REACT können in andere Komponenten verschachtelt werden, und der Komponentenbaum in REACT beginnt mit einer App-Komponente als Haupt-Elternteil, die andere Komponenten als Kinder vernetzt.

REACT-Haken

REACT-Hooks sind Funktionen, mit denen man den REACT-Zustand und die Lebenszyklusfunktionen von Funktionskomponenten nutzen kann. Mit Hooks können Sie zustandsbehaftete Logik aus Komponenten extrahieren, so dass sie unabhängig getestet und wiederverwendet werden kann. Hooks ermöglichen die Wiederverwendung von zustandsbehafteter Logik, ohne die Komponentenhierarchie zu ändern, was die gemeinsame Nutzung von Hooks durch viele Komponenten oder die Community erleichtert. Bei der Verwendung von Hooks gibt es noch einige andere Regeln zu beachten.

  • Hooks durchlaufen nur den Bereich der Komponenten und werden immer auf der obersten Ebene der REACT-Funktion kodiert. Alle Hooks beginnen mit dem Wort "use".

Wir werden uns einige der Haken ansehen, die hier vorgestellt werden:

  • 'useState'
  • 'useContext'
  • 'useEffect'
  • 'useRef'
'useState'-Haken

useState hook

Beginnen wir mit einem der am häufigsten verwendeten, dem 'useState'. useState' ist ein Hook, der es uns ermöglicht, Zustandsvariablen in funktionalen Komponenten zu haben. Man übergibt dieser Funktion den Ausgangszustand, und sie gibt eine Variable mit dem aktuellen Zustandswert und eine weitere Funktion zur Aktualisierung dieses Wertes zurück. Wichtig an dieser Stelle ist, dass die Komponenten jedes Mal, wenn wir ihren Wert aktualisieren, gerendert werden, was bedeutet, dass die Änderung sofort auf dem Bildschirm angezeigt wird. Wir können diese mit dem 'useState'-Hook erstellten Zustandsvariablen auch verwenden und sie an verschachtelte Kinder und Komponenten weitergeben. Dieser Ansatz wird als "property link" bezeichnet und ist eine der häufigsten Möglichkeiten, Daten zwischen Komponenten auszutauschen. Es gibt natürlich auch andere Möglichkeiten, den Status innerhalb unserer Anwendung zu verwalten. Wenn Sie einen großen Kuppelbaum mit vielen Komponenten haben, wird es mühsam, Datenrequisiten-Variablen an Geschwisterkomponenten zu übergeben. Die Verwendung von Context ermöglicht es uns, Daten an einem einzigen Ort zu speichern, aber wir müssen die Daten nicht durch eine Reihe von Komponenten leiten, die sie nicht benötigen. Natürlich hat dies auch einen Nachteil, denn es bedeutet, dass Komponenten weniger wiederverwendbar werden. Es gibt auch andere Methoden, die wir verwenden können. Zum Beispiel Bibliotheken von Drittanbietern. Eine davon ist Redux. Redux ermöglicht es uns, den Zustand an einem einzigen Ort zu verwalten und unsere App so zu verändern, dass sie berechenbarer und nachvollziehbarer wird. Es macht die aktuellen Änderungen in der App einfacher herauszufinden, aber leider kommen alle diese Vorteile mit bestimmten Einschränkungen und Kompromissen. Häufig haben Entwickler das Gefühl, dass durch die Verwendung von Redux zusätzlicher Boilerplate-Code entsteht, der kleine Dinge überwältigend erscheinen lässt. Dies hängt jedoch ausschließlich von der Architektur der App ab.

'useEffect'-Haken

useEffect hook

Der 'useEffect'-Haken ermöglicht die Ausführung von Seiteneffekten in Funktionskomponenten - das Abrufen von Daten, das Einrichten eines Abonnements und das manuelle Ändern des Dom in React-Komponenten sind alles Beispiele für solche Seiteneffekte. Sie können diese Operation auch einfach Seiteneffekte nennen. In React gibt es etwas, das React Components Life Cycle genannt wird und eine Sammlung von React Component Life Cycle-Stufen ist. Mit dem 'useEffect'-Hook können wir Code für jede dieser Lebenszyklusphasen ausführen.

Schauen wir uns also einige von ihnen an:

  • Die Initialisierung in der Montage ist die erste Phase des Lebenszyklus der React-Komponenten, in der die Komponente erstellt und in den Dom-Baum eingefügt wird.
  • Eine Aktualisierung kann erfolgen, wenn eine Zustandsvariable aktualisiert wird.
  • Das Aushängen bedeutet, dass die Komponente aus dem Dom entfernt wird.
'useRef'-Haken

useRef hook

Der 'useRef'-Haken wird verwendet, wenn wir den Wert, der sich ändert, behalten wollen. Wie im Fall des 'useState'-Hooks wird jedoch kein neues Rendering ausgelöst, wenn sich der Wert ändert. Häufig wird auch der 'useRef'-Hook verwendet, um ein Dom-Element zu verknüpfen, und dann können wir diese Eigenschaften manipulieren.

Benutzerdefinierte Häkchen

custom hooks

Wir können auch eigene Hooks erstellen, wenn wir Logik zwischen funktionalen JavaScript-Komponenten austauschen wollen, und wir können auch Hooks verwenden, so dass wir im Grunde die Hooks 'useState' und 'useEffect' verwenden können, wenn wir unsere eigenen benutzerdefinierten Hooks erstellen.

Gemeinsame Lesemittel

react resources

  • Nützliche Bücher für Anfänger:
    • React lernen Moderne Muster für die Entwicklung von React-Apps
    • JavaScript: Die guten Seiten
  • Online-Kurse, die eine gute Struktur und Erklärung bieten
  • Funktionale Programmierung mit Javascript würde Ihnen helfen, mehr darüber zu verstehen, wie und warum wir moderne React-Apps so bauen, wie wir es tun.

ABONNIEREN SIE UNSEREN NEWSLETTER

Teilen Sie diesen Artikel:

ABONNIEREN SIE UNSEREN NEWSLETTER

Verwandte Blog-Artikel

    Warum Startups zögern, mit einer Agentur für maßgeschneiderte Softwareentwicklung zusammenzuarbeiten - und wie wir alle Bedenken ausräumen

    Blog

    Warum Startups zögern, mit einer Agentur für maßgeschneiderte Softwareentwicklung zusammenzuarbeiten - und wie wir alle Bedenken ausräumen

    <p>Start-ups zögern oft, mit Softwareagenturen zusammenzuarbeiten, weil sie Bedenken hinsichtlich Kosten, Kontrolle und Flexibilität haben. Entdecken Sie, wie die maßgeschneiderten Softwarelösungen von Bulcode jede Herausforderung meistern und für Wachstum und Flexibilität sorgen.</p>

    Geschrieben von Svetoslava Angelova
    Nov 05, 20246 min read
    Aufbau eines hochleistungsfähigen agilen Teams: Unser bewährter Ansatz

    Blog

    Aufbau eines hochleistungsfähigen agilen Teams: Unser bewährter Ansatz

    Erfahren Sie, wie wir leistungsstarke agile Teams aufbauen, indem wir klare Rollen definieren, die Zusammenarbeit fördern und flexible Tools einsetzen.

    Geschrieben von Svetoslava Angelova
    Aug 27, 20249 min read
    Drupal 11: Was ist zu erwarten? Umfassender Leitfaden zu neuen Funktionen und Erweiterungen

    Blog

    Drupal 11: Was ist zu erwarten? Umfassender Leitfaden zu neuen Funktionen und Erweiterungen

    Drupal 11 ist da! Entdecken Sie in diesem Artikel die spannenden Funktionen und Verbesserungen. Führen Sie jetzt ein Upgrade durch, um Ihre digitale Strategie mit dem Experten-Support von Bulcode neu zu definieren.

    Geschrieben von Svetoslava Angelova
    Aug 05, 20247 min read
    Einzelne Verzeichniskomponenten in Drupal core: Ein umfassender Überblick

    Blog

    Einzelne Verzeichniskomponenten in Drupal core: Ein umfassender Überblick

    Erfahren Sie, wie Single Directory Components (SDC) in Drupal Core den Entwicklungsprozess rationalisieren, indem komponentenbezogene Dateien in einem einzigen Verzeichnis gekapselt werden. Erfahren Sie mehr über die Vorteile von SDCs und folgen Sie einer Schritt-für-Schritt-Anleitung, um sie in Ihren Drupal-Projekten zu implementieren.

    Geschrieben von Nikolay Tsekov
    Aug 07, 20244 min read
    Tutorial zum Modul Config Ignore für Drupal

    Blog

    Tutorial zum Modul Config Ignore für Drupal

    Manchmal wollen wir nicht, dass unsere Konfigurationen in der Codebasis freigegeben werden. Was können wir also in solchen Fällen tun?

    Geschrieben von Ivaylo Tsandev
    Aug 08, 20237 min read
    Wie wir eine SSL-Gesamtbewertung von B auf A+ optimiert haben

    Blog

    Wie wir eine SSL-Gesamtbewertung von B auf A+ optimiert haben

    Die Optimierung der SSL-Implementierung ermöglicht es allen Kunden, die Website sicher und ohne Warnungen zu öffnen und zu durchsuchen.

    Geschrieben von Mihail Shahov
    Aug 07, 20232 min read
    Drupal-Versionen verstehen und eine Migrationsstrategie planen

    Blog

    Drupal-Versionen verstehen und eine Migrationsstrategie planen

    Erkennen Sie die verschiedenen Drupal-Versionen und halten Sie Ihre Website auf dem neuesten Stand.

    Geschrieben von Svetoslava Angelova
    Aug 08, 20234 min read
    Drupal 9 Bild in WebP-Format konvertieren

    Blog

    Drupal 9 Bild in WebP-Format konvertieren

    WebP ist in der Lage, die Datenkomprimierung auf ein neues Niveau zu heben, da es einen Vorhersagemodus in den JPG-Prozess einfügt, der die Leistung seines JPG-Verwandten deutlich übertrifft. Und wir haben die Ergebnisse, um dies zu beweisen.

    Geschrieben von Vasil Boychev
    Aug 08, 20237 min read
    Was ist Agile und warum verwenden wir es?

    Blog

    Was ist Agile und warum verwenden wir es?

    Agile ist eine zeitlich begrenzte, iterative Methode zur Softwarebereitstellung, die darauf abzielt, die Software schrittweise während des Projekts bereitzustellen und nicht alles auf einmal gegen Ende.

    Geschrieben von Svetoslava Angelova
    Aug 08, 20234 min read
    NVM vs NPM vs Yarn

    Blog

    NVM vs NPM vs Yarn

    Im Vergleich zu den drei Technologien unterscheidet sich der NVM von den beiden anderen. Der Node Version Manager (NVM) wird zur Verwaltung von Node.js-Versionen verwendet. NPM und Yarn sind Node.js-Paketmanager. Sie ermöglichen das Herunterladen, Installieren und Verwalten von Paketen bei der Entwicklung in JavaScript.

    Geschrieben von Ventsislav Venkov
    Aug 07, 20235 min read
    Welches Modell der IT-Verpflichtung passt am besten zu Ihnen?

    Blog

    Welches Modell der IT-Verpflichtung passt am besten zu Ihnen?

    Festpreis, Zeit und Material oder engagierte Teams? Wägen Sie sorgfältig alle Vor- und Nachteile des Auftragsmodells für Ihr Projekt ab.

    Geschrieben von Svetoslava Angelova
    Aug 07, 202310 min read
    Die Websites der Flughäfen Varna und Burgas verwenden React-Komponenten in Drupal

    Blog

    Die Websites der Flughäfen Varna und Burgas verwenden React-Komponenten in Drupal

    Drupal ist ein modulares System, dessen Funktionen an viele verschiedene Anforderungen angepasst werden können, was für Projekte der öffentlichen Verwaltung besonders wichtig ist.

    Geschrieben von Mihail Shahov
    Aug 08, 20234 min read

    KONTAKT AUFNEHMEN

    Sie haben ein Projekt, das Sie gerne starten würden?