# reduxjs/redux-toolkit

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/reduxjs-redux-toolkit).**

11,213 stars · 1,271 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/reduxjs/redux-toolkit
- Homepage: https://redux-toolkit.js.org
- awesome-repositories: https://awesome-repositories.com/repository/reduxjs-redux-toolkit.md

## Description

Redux Toolkit is a state management toolkit and store configurator designed to simplify the development of Redux applications by reducing boilerplate code. It functions as an immutable state manager and a centralized store configuration system that provides a streamlined workflow for managing global application state.

The project distinguishes itself through an automated async action orchestrator that manages the lifecycle of promises by automatically dispatching pending, fulfilled, and rejected actions. It also acts as a normalized state organizer, providing tools to structure complex relational data in a flattened format to prevent data redundancy.

The toolkit covers several core capability areas, including state partitioning through the use of slices that colocate action creators and reducer logic. It employs a proxy-based system to allow state updates using mutative syntax while ensuring the underlying operations remain immutable. Additional capabilities include remote data fetching and caching, as well as reactive state listeners for executing effects in response to state transitions.

## Tags

### Software Engineering & Architecture

- [Redux Implementations](https://awesome-repositories.com/f/software-engineering-architecture/redux-implementations.md) — Implements a streamlined Redux architecture with a centralized immutable store, actions, and reducers.
- [Lifecycle Action Generators](https://awesome-repositories.com/f/software-engineering-architecture/action-dispatch-middleware/lifecycle-action-generators.md) — Automatically generates pending, fulfilled, and rejected action types based on the outcome of asynchronous promises.
- [Centralized State Containers](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/centralized-state-containers.md) — Provides a centralized state container with sensible defaults and integrated developer tool support. ([source](https://github.com/reduxjs/redux-toolkit#readme))
- [Immutable State Utilities](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/state-logic-and-utilities/immutable-state-utilities.md) — Facilitates safe updates to deeply nested state structures through an immutable interface using proxy-based logic. ([source](https://github.com/reduxjs/redux-toolkit#readme))
- [Store Normalization Architectures](https://awesome-repositories.com/f/software-engineering-architecture/data-normalization-layers/store-normalization-architectures.md) — Organizes complex relational data in a flattened format using reusable reducers and selectors to avoid redundancy.
- [Async Action Orchestrators](https://awesome-repositories.com/f/software-engineering-architecture/redux-implementations/async-action-orchestrators.md) — Manages the lifecycle of promises by automatically dispatching pending, fulfilled, and rejected Redux actions.
- [Normalized State Organizers](https://awesome-repositories.com/f/software-engineering-architecture/redux-implementations/normalized-state-organizers.md) — Provides a toolset for structuring complex relational data in a flattened format using reusable reducers and selectors.
- [Store Configurators](https://awesome-repositories.com/f/software-engineering-architecture/redux-implementations/store-configurators.md) — Provides a streamlined way to initialize a Redux store with sensible defaults and integrated middleware support.
- [Store Normalization](https://awesome-repositories.com/f/software-engineering-architecture/redux-implementations/store-normalization.md) — Provides techniques for structuring relational data in a flattened format to ensure consistent updates.
- [Immutable Update Utilities](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/state-management-architectures/immutable-data-strategies/immutable-update-utilities.md) — Allows writing state updates using mutative syntax that is automatically translated into immutable operations. ([source](https://github.com/reduxjs/redux-toolkit#readme))
- [Asynchronous Action Handling](https://awesome-repositories.com/f/software-engineering-architecture/action-based-state-transitions/asynchronous-action-handling.md) — Provides patterns for wrapping asynchronous operations to track pending, fulfilled, and rejected states.
- [Action Dispatch Middleware](https://awesome-repositories.com/f/software-engineering-architecture/action-dispatch-middleware.md) — Implements interceptors that wrap the action dispatch process to handle side effects and logging.
- [Colocated Action Reducers](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/state-management-architectures/action-reducer-architectures/colocated-action-reducers.md) — Groups action creators and reducer logic into single modules to eliminate repetitive boilerplate code.

### User Interface & Experience

- [Global State Managers](https://awesome-repositories.com/f/user-interface-experience/global-state-managers.md) — Implements a comprehensive system for maintaining and updating global application state across UI components. ([source](https://github.com/reduxjs/redux-toolkit#readme))
- [State Slicing](https://awesome-repositories.com/f/user-interface-experience/global-state-managers/state-slicing.md) — Divides the global state tree into independent slices that colocate action creators and reducer logic.
- [Slice Generators](https://awesome-repositories.com/f/user-interface-experience/global-state-managers/state-slicing/slice-generators.md) — Combines action creators and reducer functions into cohesive units to minimize manual boilerplate. ([source](https://github.com/reduxjs/redux-toolkit#readme))

### Data & Databases

- [Asynchronous Data Fetching](https://awesome-repositories.com/f/data-databases/asynchronous-data-fetching.md) — Handles server requests and API calls by automating the lifecycle of asynchronous state transitions.
- [Immutable State Containers](https://awesome-repositories.com/f/data-databases/data-management/state-context-management/immutable-state-containers.md) — Provides an immutable state container that converts mutative syntax into safe immutable operations.
- [API Response Caching](https://awesome-repositories.com/f/data-databases/api-response-caching.md) — Provides caching mechanisms specifically for API endpoint responses to optimize network performance. ([source](https://github.com/reduxjs/redux-toolkit#readme))
- [Normalized State Schemas](https://awesome-repositories.com/f/data-databases/data-normalization/normalized-state-schemas.md) — Provides utilities to organize and maintain complex relational data in a flattened, normalized format. ([source](https://github.com/reduxjs/redux-toolkit#readme))

### Web Development

- [Proxy-Based State Handlers](https://awesome-repositories.com/f/web-development/proxy-based-state-handlers.md) — Uses JavaScript Proxies to allow mutative syntax while producing immutable state results.
- [Remote Data Fetching](https://awesome-repositories.com/f/web-development/remote-data-fetching.md) — Provides utilities for retrieving and parsing data from network resources via a standardized interface. ([source](https://github.com/reduxjs/redux-toolkit#readme))
- [Promise Lifecycle Managers](https://awesome-repositories.com/f/web-development/asynchronous-state-managers/promise-based-state-resolution/async-lifecycle-hooks/promise-lifecycle-managers.md) — Generates functions that automatically dispatch status updates throughout the lifecycle of a promise. ([source](https://github.com/reduxjs/redux-toolkit#readme))
- [Thunk Orchestrators](https://awesome-repositories.com/f/web-development/asynchronous-state-managers/promise-based-state-resolution/async-lifecycle-hooks/thunk-orchestrators.md) — Wraps asynchronous logic in functions that dispatch lifecycle actions to track the status of promises.
