Redux

Redux

Redux is a predictable state container for JavaScript apps.

It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. On top of that, it provides a great developer experience, such as live code editing combined with a time traveling debugger.

You can use Redux together with React, or with any other view library. It is tiny (2kB, including dependencies), but has a large ecosystem of addons available.

Redux Toolkit

Redux itself is small and unopinionated. We also have a separate addon package called Redux Toolkit, which includes some opinionated defaults that help you use Redux more effectively. It’s our official recommended approach for writing Redux logic.

RTK includes utilities that help simplify many common use cases, including store setup, creating reducers and writing immutable update logic, and even creating entire “slices” of state at once.

Whether you’re a brand new Redux user setting up your first project, or an experienced user who wants to simplify an existing application, Redux Toolkit can help you make your Redux code better.

Predictable

Redux helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test.

Centralized

Centralizing your application’s state and logic enables powerful capabilities like undo/redo, state persistence, and much more.

Debuggable

The Redux DevTools make it easy to trace when, where, why, and how your application’s state changed. Redux’s architecture lets you log changes, use “time-travel debugging”, and even send complete error reports to a server.

Flexible

Redux works with any UI layer, and has a large ecosystem of addons to fit your needs.

Official redux.js.org