Der useReducer-Hook: Vereinfachte Zustandsverwaltung in React
HeimHeim > Blog > Der useReducer-Hook: Vereinfachte Zustandsverwaltung in React

Der useReducer-Hook: Vereinfachte Zustandsverwaltung in React

May 12, 2023

Der useReducer Hook ist eine der besten Optionen für die Statusverwaltung in React. Beginnen Sie Ihre Reise mit dem useReducer Hook mithilfe dieser Anleitung.

Die Zustandsverwaltung ist bei der React-Entwicklung von entscheidender Bedeutung und dient als Eckpfeiler für die Verarbeitung und Aktualisierung von Daten in Benutzeroberflächen. ReagierenuseState Hook bietet einen unkomplizierten Ansatz zur Zustandsverwaltung, wird jedoch bei komplexen Zuständen umständlich. Da ist dasuseReducerHook kommt herein.

DeruseReducer Hook bietet eine strukturierte Methodik zur Verwaltung komplexer Zustände und Übergänge. UmarmenuseReducerHook ermöglicht Flexibilität und Effizienz und führt zu saubererem Code.

DeruseReducer Hook ist eine integrierte Funktion von React, die die Zustandsverwaltung durch Einhaltung der Prinzipien des Reducer-Musters rationalisiert. Es bietet Ihnen eine organisierte und skalierbare Alternative zumuseStateHook, besonders geeignet für die Handhabung komplexer Zustände.

Durch die Nutzung deruseReducerHook können Sie sowohl den Zustand als auch seine Übergänge in einer einzigen Reduzierfunktion konsolidieren.

Diese Funktion verwendet den aktuellen Status und eine Aktion als Eingaben und erzeugt anschließend den neuen Status. Es funktioniert nach den gleichen Prinzipien wie die in JavaScript verwendete ReduzierfunktionArray.prototype.reduce()Methode.

Die Syntax für die Verwendung vonuseReducerDer Haken ist wie folgt:

DeruseReducerDie Funktion akzeptiert zwei Argumente:

Beim Aufruf wird dieuseReducerHook gibt ein Array zurück, das aus zwei Elementen besteht:

Betrachten Sie das folgende Beispiel, das die Verwendung von veranschaulichtuseReducerHaken Sie bei der Verwaltung eines einfachen Zählers ein:

Aus der obigen Abbildung geht hervor, dass ein Anfangszustand vorliegt0wird zusammen mit einer Reduzierfunktion definiert, die für die Verarbeitung von zwei Arten von Aktionen verantwortlich ist:ZuwachsUnddekrementieren . Die Reduzierfunktion ändert den Zustand entsprechend den angegebenen Aktionen.

Durch die Nutzung deruseReducer Hook, der Status wird initialisiert und sowohl der aktuelle Statuswert als auch die Dispatch-Funktion werden erfasst. Die Versandfunktion wird anschließend verwendet, um Statusaktualisierungen auszulösen, wenn auf die entsprechenden Schaltflächen geklickt wird.

Für eine optimale Ausnutzung deruseReducer Hook: Sie können eine Reduzierungsfunktion erstellen, die beschreibt, wie der Status basierend auf den gesendeten Aktionen aktualisiert werden soll. Diese Reduzierfunktion akzeptiert den aktuellen Status und die Aktion als Argumente und gibt den neuen Status zurück.

Typischerweise verwendet eine Reduzierfunktion eine bedingte Schalteranweisung, um verschiedene Aktionstypen zu verarbeiten und entsprechende Zustandsänderungen herbeizuführen.

Betrachten Sie das folgende Beispiel einer Reduzierfunktion, die zum Verwalten einer Aufgabenliste verwendet wird:

Im obigen Beispiel verarbeitet die Reduzierfunktion drei verschiedene Aktionstypen:hinzufügen,Umschalten, Undlöschen . Nach Erhalt derhinzufügenBei dieser Aktion wird die Nutzlast (ein neues Aufgabenelement) an die angehängtZustandArray.

Im Fall derUmschaltenAktion, es wechselt dievollendet Eigenschaft des Aufgabenelements, das der angegebenen ID zugeordnet ist. DerlöschenDie Aktion hingegen entfernt das mit der angegebenen ID verknüpfte Aufgabenelement aus dem Statusarray.

Sollte keiner der Aktionstypen übereinstimmen, gibt die Reduzierfunktion den aktuellen Zustand unverändert zurück.

Um Zustandsaktualisierungen durchzuführen, die durch die erleichtert werdenuseReducer Hook, das Disponieren von Aktionen wird unverzichtbar. Aktionen stellen einfache JavaScript-Objekte dar, die die gewünschte Art der Zustandsänderung verdeutlichen.

Die Verantwortung für die Bearbeitung dieser Aktionen und die Generierung des Folgezustands liegt bei der Reduzierfunktion.

Die Versandfunktion, bereitgestellt von deruseReducer Hook wird zum Versenden von Aktionen verwendet. Es akzeptiert ein Aktionsobjekt als Argument und leitet dadurch die entsprechende Statusaktualisierung ein.

In den vorherigen Beispielen wurden Aktionen mithilfe der Syntax ausgelöstVersand({Typ: 'actionType'}) . Es ist jedoch denkbar, dass Maßnahmen ergänzende Daten umfassen, die sogenanntenNutzlast , das weitere Erkenntnisse zum Update liefert. Zum Beispiel:

In diesem Szenario ist diehinzufügenDie Aktion enthält ein Nutzlastobjekt, das die Einzelheiten des neuen Aufgabenelements kapselt, das in den Status aufgenommen werden soll.

Die wahre Stärke desuseReducerHook liegt in seiner Fähigkeit, komplizierte Staatsstrukturen zu verwalten, die zahlreiche miteinander verbundene Werte und komplizierte Staatsübergänge umfassen.

Durch die Zentralisierung der Zustandslogik innerhalb einer Reduktionsfunktion wird die Verwaltung verschiedener Aktionstypen und die systematische Aktualisierung des Zustands zu einem machbaren Unterfangen.

Stellen Sie sich ein Szenario vor, in dem ein Reaktionsformular aus mehreren Eingabefeldern besteht. Anstatt den Status jedes Einganges einzeln zu verwaltenuseState, DieuseReducerHook kann zur ganzheitlichen Verwaltung des Formularstatus eingesetzt werden.

Die Reduzierfunktion kann Aktionen, die für die Änderung bestimmter Felder und die umfassende Validierung des gesamten Formulars relevant sind, geschickt verarbeiten.

Im Beispiel bedient die Reduzierfunktion zwei unterschiedliche Aktionstypen:updateFieldUndvalidierenForm . DerupdateFieldDie Aktion erleichtert die Änderung eines bestimmten Felds innerhalb des Status durch Verwendung des bereitgestellten Werts.

Umgekehrt ist dievalidierenFormAktion aktualisiert dieisFormValidEigenschaft basierend auf dem bereitgestellten Validierungsergebnis.

Durch den Einsatz deruseReducerMit einem Hook zur Verwaltung des Formularstatus werden alle zugehörigen Status und Aktionen in einer einzigen Einheit zusammengefasst, wodurch die Verständlichkeit und Wartung erleichtert wird.

Obwohl dieuseReducerHook stellt ein wirksames Werkzeug für die Zustandsverwaltung dar. Es ist wichtig, seine Unterschiede und Kompromisse im Vergleich zu alternativen Zustandsverwaltungslösungen innerhalb des React-Ökosystems anzuerkennen.

DeruseState Hook reicht aus, um einfache, isolierte Zustände innerhalb einer Komponente zu verwalten. Die Syntax ist im Vergleich zu prägnanter und einfacheruseReducer . Dennoch gilt für komplizierte Zustands- oder Zustandsübergänge:useReducerermöglicht einen besser organisierten Ansatz.

Redux ist eine bekannte Zustandsverwaltungsbibliothek für React-Anwendungen. Es folgt einem ähnlichen Reduktionsmuster wieuseReducer, bietet jedoch zusätzliche Funktionen wie einen zentralen Speicher, Middleware-Unterstützung und Zeitreise-Debugging.

Redux erweist sich als ideal für groß angelegte Anwendungen, die komplexe Anforderungen an die Zustandsverwaltung erfordern. Für kleinere Projekte oder einfachere staatliche VerwaltungsanforderungenuseReducerkann als leichte und einfachere Alternative dienen.

Die Kontext-API von React ermöglicht die gemeinsame Nutzung des Zustands über mehrere Komponenten hinweg, ohne auf Prop-Drilling zurückgreifen zu müssen. In Verbindung mituseReducer, kann daraus eine zentralisierte Zustandsverwaltungslösung entstehen.

Während die Kombination von Kontext-API unduseReducerverfügt über eine beträchtliche Leistungsfähigkeit, kann jedoch zu zusätzlicher Komplexität führen, wenn es mit der isolierten Verwendung von useReducer verglichen wird.

Die Kontext-API wird am besten eingesetzt, wenn die Notwendigkeit besteht, den Status inmitten tief verschachtelter Komponenten zu teilen, oder wenn es mit einer komplexen Komponentenhierarchie konfrontiert wird. Die Auswahl einer geeigneten State-Management-Lösung hängt von den spezifischen Anforderungen der jeweiligen Anwendung ab.

Für Projekte mittlerer Größe,useReducerkann sich als effektive und einfachere Alternative zu Redux oder der Context API erweisen.

Der useReducer Hook ist ein wirksames Instrument zur Vereinfachung der Statusverwaltung innerhalb von React-Anwendungen. Durch die Einhaltung der Prinzipien des Reduziermusters bietet es einen strukturierten und skalierbaren Ansatz für die Handhabung komplexer Zustände und Zustandsübergänge.

In Verbindung mit dem useState Hook kann useReducer als einfache Alternative zu Bibliotheken wie Redux oder der Context API dienen, insbesondere im Kontext kleinerer bis mittlerer Projekte.

Paul ist ein Gadget-Enthusiast, der an die Macht der Technologie glaubt, die Welt zu verändern. Er ist bekannt für seine fesselnden und informativen Artikel, was ihn zu einem Autor macht, den man in der Tech-Welt im Auge behalten sollte.

useState useReducer useReducer useReducer MAKEUSEOF VIDEO DES TAGES Scrollen Sie, um mit dem Inhalt fortzufahren useReducer useState useReducer Array.prototype.reduce() useReducer useReducer Reducer (Funktion) InitialState (beliebig) useReducer-Status (beliebig): Versand (Funktion): useReducer 0 inkrementieren dekrementieren useReducer useReducer hinzufügen, umschalten, löschen, Status hinzufügen, umschalten, abgeschlossen, löschen, useReducer, useReducer Dispatch({type: 'actionType'}) Nutzlast, hinzufügen, useReducer, useState, useReducer, updateField,validateForm, updateField,validateForm, isFormValid, useReducer, useReducer, useState, useReducer, useReducer, useReducer, useReducer, useReducer, useReducer, useReducer