Ronaiza Cardoso

25. Februar 2024

Min Read

React Hooks gegen Redux entmystifiziert

Redux und React-Hooks sollten nicht als das Gegenteil voneinander gesehen werden. Es sind verschiedene Dinge mit unterschiedlichen Zielen.

Wann React-Hooks geboren wurde, schienen mehrere Entwickler verwirrt über die eingeführten Konzepte und deren Interpolation in die Redux Bibliothek. Die Verwenden Sie Reducer Hook hat diese Verwirrung noch verstärkt.

In diesem Artikel werde ich erklären, wie Redux und das neue Reagiere Hook Verwenden Sie Reducer sind unterschiedlich und wie können sie verwendet werden.

blue arrow to the left
Imaginary Cloud logo

Redux- und React-Hooks: Zustandsverwaltung

Redux wurde erstellt, um den Status in der gesamten Anwendung zu verwalten. Es bietet mehrere Tools, um die Komplexität der Verwaltung des globalen Anwendungsstatus zu verringern.

Die Neuzugänge zum Reagieren Bibliothek, Kontext verwenden und Verwenden Sie Reducer, kam auch, um den Staat zu verwalten Reagieren Bewerbung. Es hat jedoch einen subtilen Unterschied zu Redux, was ich weiter unten näher erläutern werde.

Aber zuerst möchte ich Ihnen vorstellen React-Hooks.

blue arrow to the left
Imaginary Cloud logo

Was ist React Hooks?

React Hooks ist die neue Art, den Status und den Lebenszyklus von React-Komponenten zu handhaben., ohne sich auf Komponentenklassen zu verlassen. Es wurde in der Version 16.8 der Bibliothek eingeführt und hat die Absicht, die Komplexität der Komponenten zu verringern, indem die Logik zwischen ihnen gemeinsam genutzt wird.

React-Hooks bietet eine einfache Handhabung der Komponente Verhalten und teile das Komponente Logik.

Das React-Hooks Die Funktion hat nicht die Absicht, die bisherigen Kenntnisse von zu ersetzen Reagieren Konzepte wie Lebenszyklus, Bundesstaat, Requisiten, Kontext, und Refs.

Mit React-Hooks, wir können unsere benutzerdefinierten Hooks schreiben, um Logik zu extrahieren, die in mehr als einer Komponente verwendet wird, und die implementieren D.R.Y (Wiederhole dich nicht) Muster.

Im folgenden Ausschnitt sehen Sie ein Beispiel für benutzerdefinierte Hooks, die für eines unserer Projekte geschrieben wurden:

undefined

Okay, jetzt wo wir es wissen React-Hooks, schauen wir uns das an Redux.

blue arrow to the left
Imaginary Cloud logo

Was ist Redux?

Redux ist eine Bibliothek zur Verwaltung des globalen Anwendungsstatus. In dieser Bibliothek finden wir verschiedene Tools, die uns Entwicklern helfen, mit dem Status der Anwendung Schritt zu halten und sie auch zu transformieren, indem sie dem Benutzer die Möglichkeit geben, etwas auszugeben Aktionen.

Redux, wie es in der Dokumentation heißt, kann in drei Grundprinzipien beschrieben werden:

  1. Eine einzige Quelle der Wahrheit: Der globale Status Ihrer Anwendung wird in einem Objektbaum innerhalb einer einzigen gespeichert undefined.‍
  2. Der Staat ist schreibgeschützt: Die einzige Möglichkeit, das zu ändern undefined ist durch das Aussenden von Aktionen.‍
  3. Änderungen werden mit reinen Funktionen vorgenommen: Um das zu aktualisieren undefined, der Reducer sollte als reine Funktion geschrieben werden.‍

Redux sogar aktualisiert die Bibliothek mit seinem benutzerdefinierte Haken. Diese können verwendet werden, um die Komponenten zu integrieren, die das verwenden React-Hooks Funktionen für den Zugriff auf Daten aus den Speicher- und Versandaktionen, ohne sich auf die Komponentenklassen verlassen zu müssen.

Jetzt, wo wir etwas vertrauter sind Redux und React-Hooks lassen Sie uns den Unterschied zwischen ihnen sehen.

blue arrow to the left
Imaginary Cloud logo

React Hooks gegen Redux

Beide kümmern sich um die Staatsverwaltung, jedoch mit mehreren Unterschieden. Der folgende Satz enthält viel Abstraktion, aber das scheint eine goldene Regel zu sein, um zu wissen, wann Sie ihn verwenden sollten Redux in deine Bewerbung:

Redux sollte in Anwendungen verwendet werden, die über mehrere Funktionen verfügen. Mit diesen Funktionen können Teile derselben Informationen gemeinsam genutzt werden.

Während der Verwendung des Kontext verwenden und Verwenden Sie Reducer, das Redux Funktionalitäten können reproduziert werden. Redux bietet einige kostenlose Tools, die uns helfen, die Anwendung zu verwalten, ohne das Rad neu zu erfinden. Es bietet uns auch Folgendes:

  • Speichern des aktuellen Status unserer gesamten Anwendung;‍
  • Tools zum Debuggen während der Entwicklung wie redux-devtools;‍
  • Ändern Sie den aktuellen Status, ohne ein erneutes Rendern der gesamten Anwendung auszulösen, indem Sie den undefined Funktion.

Lassen Sie uns ein bisschen mehr über das eigentliche verstehen Reagieren Süchte, React-Hooks, um den globalen Staat und seine ideale Nutzung zu verwalten.

blue arrow to the left
Imaginary Cloud logo

Der useContext-Hook

Das Kontext verwenden Hook kommt, um auf das zuzugreifen Bundesstaat das wird geteilt von Anbieter. Das beste Szenario, um das zu verwenden React-Hooks Kontext verwenden ist in einer kleinen Anwendung oder um kleine Informationen zwischen den Komponenten auszutauschen, z. B. das Thema der Anwendung. Das Kontext verwenden hat zwei Hauptkonzepte, die unten aufgeführt sind.

  1. AnbieterDer Anbieter ist für die Verwaltung der Statusänderungen verantwortlich. Diese Änderungen verteilen sich auf alle Verbraucher. Ein gutes Beispiel für die Verwendung der Kontext verwenden Hook thematisiert.

undefined

Dieser Anbieter erstellt die undefined Objekt, das in allen Anwendungen verwendet wird, und eine Funktion, um es zu aktualisieren, das undefined. Im folgenden Ausschnitt können Sie überprüfen undefined in Aktion.

undefined

  1. VerbraucherDer Verbraucher konsumiert, wie der selbsterklärende Name schon sagt, den Inhalt, den er abonniert hat. Jedes Mal, wenn ein Verbraucher den Status des Anbieters ändert, werden diese Änderungen auch von allen anderen Verbrauchern verbreitet. Schauen wir uns das folgende Beispiel an:

undefined

Im obigen Ausschnitt können wir die Verwendung des globalen Objekts überprüfen undefined um die Hintergrundfarbe unserer Anwendung festzulegen.

Nach dem Kennenlernen der Kontext verwenden Funktion, es gibt noch eine, die die Entwickler verwirrt. Die Verwenden Sie Reducer Haken. Im folgenden Abschnitt werde ich diese Funktion durchgehen und ihren Anwendungsfall erläutern.

Web-Banner für Imaginary Cloud. Text: „Build scalable products with Web & Mobile Development.“ mit einem „LEARN MORE“-Button und einer isometrischen Illustration von einem Monitor und Smartphone auf dunklem Hintergrund.
blue arrow to the left
Imaginary Cloud logo

Kann useReducer Redux ersetzen?

Das Verwenden Sie Reducer Hook sollte in Komponenten verwendet werden, die eine komplexe Logik dahinter haben. Es zeigt sich als die Hauptverwirrung mit dem Redux Bibliothek, weil Entwickler dazu neigen, das zu denken Verwenden Sie Reducer könnte die State Manager-Bibliothek ersetzen. Tatsächlich sollte seine Verwendung jedoch beschränkt werden auf Komponenten. Dies liegt hauptsächlich an der weltweiten Verwendung von Verwenden Sie Reducer erfordert das Umschreiben von neuem Code, um Funktionen wie die Steuerung von Komponenten-Updates durchzuführen.

Wie funktioniert useReducer?

Jetzt, wo wir den Anwendungsfall für den Verwenden Sie Reducer Hook ist Zeit, etwas Action zu zeigen. Im folgenden Beispiel verwenden wir das neue Reagiere Hook Sucht Verwenden Sie Reducer um eine Komponente mit unterschiedlichen Zuständen zu steuern.

Werfen wir einen tiefen Blick auf die Verwenden Sie Reducer Eingabe- und Ausgabeparameter.

Eingabeparameter

Die Erklärung der Verwenden Sie Reducer Hook wird höchstwahrscheinlich so aussehen:undefined

Wo können wir feststellen, dass Verwenden Sie Reducer Hook erhält zwei Parameter, wie unten gezeigt:

  1. Das Minderer Funktion: diejenige, die verwendet wird, um den globalen Staat zu transformieren.In unserem Beispiel ist die Reduktionsfunktion die verantwortliche Reaktion auf drei Aktionen:

undefined

  1. Die Initiale Bundesstaat: steht für den Standardstatus.

undefined

Ausgabeparameter

Der erste Ausgabeparameter des Hooks ist der tatsächliche Zustand der Komponente. Dieser Status sollte in unserer Anwendung zur Darstellung der Daten verwendet werden.

undefined

Es folgt auch der gleichen Regel der Reagieren Staat, das heißt:

Schreiben Sie niemals direkt in den Staat und der Status sollte durch Ausgeben aktualisiert werden Aktionen.

Das Aktionen das wird versandt von unseren Komponenten sollte immer als ein Objekt dargestellt werden mit undefined und undefined Schlüssel. Wo undefined steht als Bezeichner des versandt Aktion und die undefined ist die Information, dass dies Aktion wird zum Staat beitragen.

undefined

Einpacken

Wenn wir all diese Teile zusammenfügen, können wir das Endergebnis in der folgenden Anwendung sehen:

blue arrow to the left
Imaginary Cloud logo

React Hooks oder Redux: beide.

Redux und React-Hooks sollte als Ergänzung und auch als verschiedene Dinge gesehen werden. Während mit dem Neuen React-Hooks Ergänzungen, Kontext verwenden und Verwenden Sie Reducer, können Sie den globalen Staat managen, bei Projekten mit größerer Komplexität können Sie sich darauf verlassen Redux um Ihnen bei der Verwaltung der Bewerbungsdaten zu helfen.

Wenn du darüber nachdenkst eine Anwendung erstellen, beide können verwendet werden. Während Redux enthält den globalen Status und die Aktionen, die ausgelöst werden können, die React-Hooks Funktionen zur Behandlung des lokalen Komponentenstatus.

Fanden Sie diesen Artikel hilfreich? Diese könnten dir auch gefallen!

blue arrow to the left
Imaginary Cloud logo

The Imaginary Cloud State Matrix

Most comparisons shrug and say "it depends". Here is what we actually use when we audit or start a React codebase. Two axes: application complexity, meaning how many features share the same data, and team size, meaning how many engineers change that data.

Matrix by Imaginary Cloud mapping React Hooks, Zustand, and Redux Toolkit by project complexity and team size.

The same four rules, in prose, because images travel badly:

  1. One to four engineers, few features sharing data: use React hooks alone. A state library here is over-engineering, and you pay for it in wasted setup.
  2. Five or more engineers, simple application: keep hooks, but write down where shared state lives. Your risk is convention drift, not performance.
  3. Small team, many features sharing data: use Zustand. You need selector-based subscriptions, not organisational scaffolding.
  4. Five or more engineers, many features sharing data: use Redux Toolkit. Structure, audit trail and onboarding speed are worth every line of boilerplate.

And here is the bit that surprises people. Team size, not application complexity, is the stronger predictor. A genuinely complex app maintained by two engineers who share a mental model runs beautifully on hooks. A merely fiddly app maintained by nine engineers across three squads does not, and not because the code cannot express it. Because nine people cannot hold an undocumented convention in their heads at the same time.

What happens when you scale from two engineers to ten?

Picture a product growing from two engineers to ten across a couple of quarters.

At two, hooks-only is optimal. Shared state sits in three contexts, the conventions are unwritten because both engineers wrote them, and shipping is quick. Redux would be dead weight.

At ten, that same architecture flips on you. Onboarding stretches from days into weeks, because there is no canonical answer to "where does this data live", only precedent.

Two engineers solve the same re-render problem independently, in incompatible ways.

Debugging a production incident means reconstructing state by reading code, because there is no action log. Velocity drops, and no single decision caused it.

So the trade-off is not boilerplate versus elegance. It is cost paid upfront versus cost paid at scale, with interest.

The failure runs both ways, mind. Adopting Redux for a two-engineer MVP is a real cost with no return. The signal to watch is not lines of code. It is the day your team stops being able to answer "why did this re-render" without opening a debugger.

blue arrow to the left
Imaginary Cloud logo

How do you migrate from Redux to hooks (or Zustand)?

The reverse migration is increasingly common, usually when the Redux store turns out to be mostly cached server data wearing a disguise.

  1. Audit what the store really holds. In most codebases we inherit, the bulk of it is server state: API responses, cached lists, pagination cursors. That is not client state, and Redux was never its right home.
  2. Move server state to a query library. TanStack Query or SWR handle caching, revalidation and background refetching. The store shrinks dramatically.
  3. Assess what is left. Auth, theme, feature flags, a handful of UI concerns. Frequently small enough for context plus useReducer, or one Zustand store.
  4. Migrate slice by slice. Redux and React hooks coexist quite happily. There is no big-bang cutover, and there should not be one.

Teams regularly find step 2 settles the whole argument on its own. The problem was never Redux. It was using a client state manager as a network cache.

React hooks vs Redux vs Zustand: summary comparison

FeatureReact hooks (Context + useReducer)ZustandRedux (Redux Toolkit)
State scopeComponent-local, or narrow shared slicesGlobal, lightweight storeGlobal, single source of truth
ToolingReact DevTools, no action historyWorks with Redux DevTools via middlewareRedux DevTools, time-travel, full action log
BoilerplateMinimalMinimalModerate, much reduced by Redux Toolkit
Re-render controlManual: memoisation, context splittingBuilt in, via selectorsBuilt in, via selectors
Async handlingRoll your own, or add a query libraryAdd a query libraryThunks, middleware, RTK Query
Onboarding costLow if conventions are documented, high if notLowHigher upfront, lower per extra engineer
Ideal team size1 to 4 engineers1 to 8 engineers5+ engineers, or regulated domains
Ideal applicationMVPs, marketing sites, focused productsMid-sized products with shared UI stateMulti-feature platforms, auditable domains

Want the wider picture? Our guide to React state management covers the full landscape, and our pieces on selecting a tech stack and asynchronous JavaScript patterns cover the ground either side of it.

blue arrow to the left
Imaginary Cloud logo

Frequently asked questions

What does Redux mean?

Redux is an open-source library for managing global application state in JavaScript apps, most often React ones. It keeps shared state in a single object called the store, and changes it only through dispatched actions handled by pure functions called reducers. The name gives the game away: state changes are reduced into one predictable flow.

Should I use Redux or React hooks?

Use hooks for local component state and small shared values like theme or locale. Reach for Redux when several features depend on the same data, when more than five engineers work on the codebase, or when you need an audit trail of state changes. In most production applications, the answer is both, at different layers.

React hooks vs Redux vs Zustand: which should I choose?

Start with hooks. Move to Zustand when shared state outgrows context and you begin fighting re-renders. Move to Redux Toolkit when the team passes roughly five engineers, or the domain demands traceable state changes. Zustand now leads the category on developer satisfaction, while Redux remains the most widely deployed.

Is Redux still relevant in 2026?

Yes. Just not as the automatic default. The State of React 2025 survey finds Redux and Redux Toolkit are still the most widespread solutions, and they remain the strongest option for large teams and regulated domains. For a new project with a small team, Zustand, or no library at all, is now the more common starting point.

When should I use useReducer instead of Redux?

Use useReducer when complex state is penned inside one component or a tight cluster: a multi-step form, a wizard, a data grid. Use Redux when that state is shared across unrelated parts of the application. Scope, not complexity, draws the line.

Can React hooks replace Redux entirely?

For small and mid-sized applications, yes. useContext and useReducer together reproduce most of what Redux does. What they cannot replace without serious custom work is selector-based re-render control, middleware for async logic, and the DevTools debugging experience. Which is exactly what large teams lean on.

What is react redux, and how is it different from Redux?

Redux is framework-agnostic, a state container that works with any UI layer. react-redux is the official binding that wires it into React, giving you the useSelector and useDispatch hooks. You need both to use Redux in a React application.

Does the Context API cause performance problems?

It can. Context has no selector mechanism, so when a provider's value changes, every consumer beneath it re-renders, including the ones that never used the changed part. Fine for values that rarely move. Painful for anything that changes often or is consumed widely.

The verdict: both, deliberately

So is Redux finished? No, of course not. React hooks and Redux are complements, not rivals. Hooks handle component state and shareable logic, Redux handles global state, dispatched actions and the observability that large teams live on, and Zustand now sits comfortably between them.

Back to the building one last time. You do not choose between the tap and the mains. You work out how many rooms need water, how many people are turning the taps, and you plumb accordingly.

Where does your application sit on the complexity axis, where does your team sit on the size axis, and where will both of them sit in twelve months? Architect for that. Not for today.

If you are building or scaling a React application and want a straight answer on your state architecture before it sets hard, our team runs technical audits that do exactly that.

Ronaiza Cardoso
Ronaiza Cardoso

Ich bin seit 2016 Javascript-Entwickler und habe mobile Apps mit Ionic und React Native erstellt. Gitarrist und Kochliebhaber.

Read more posts by this author

People who read this post, also found these interesting:

Dropdown caret icon