redux-toolkit README

The project's README from github.com/reduxjs/redux-toolkit. As one markdown file: README.md.

Redux Toolkit

GitHub Workflow Status npm version npm downloads

The official, opinionated, batteries-included toolset for efficient Redux development

Installation

Create a React Redux App

The recommended way to start new apps with React and Redux Toolkit is by using our official Redux Toolkit + TS template for Vite, or by creating a new Next.js project using Next's with-redux template.

Both of these already have Redux Toolkit and React-Redux configured appropriately for that build tool, and come with a small example app that demonstrates how to use several of Redux Toolkit's features.

# Vite with our Redux+TS template
# (using the `degit` tool to clone and extract the template)
npx degit reduxjs/redux-templates/packages/vite-template-redux my-app

# Next.js using the `with-redux` template
npx create-next-app --example with-redux my-app

We do not currently have official React Native templates, but recommend these templates for standard React Native and for Expo:

An Existing App

Redux Toolkit is available as a package on NPM for use with a module bundler or in a Node application:

# NPM
npm install @reduxjs/toolkit

# Yarn
yarn add @reduxjs/toolkit

If you use an AI agent, run npx @tanstack/intent@latest install to install agent skills.

The package includes a precompiled ESM build that can be used as a <script type="module"> tag directly in the browser.

Documentation

The Redux Toolkit docs are available at https://redux-toolkit.js.org, including API references and usage guides for all of the APIs included in Redux Toolkit.

The Redux core docs at https://redux.js.org includes the full Redux tutorials, as well usage guides on general Redux patterns.

Purpose

The Redux Toolkit package is intended to be the standard way to write Redux logic. It was originally created to help address three common concerns about Redux:

We can't solve every use case, but in the spirit of create-react-app, we can try to provide some tools that abstract over the setup process and handle the most common use cases, as well as include some useful utilities that will let the user simplify their application code.

Because of that, this package is deliberately limited in scope. It does not address concepts like "reusable encapsulated Redux modules", folder or file structures, managing entity relationships in the store, and so on.

Redux Toolkit also includes a powerful data fetching and caching capability that we've dubbed "RTK Query". It's included in the package as a separate set of entry points. It's optional, but can eliminate the need to hand-write data fetching logic yourself.

What's Included

Redux Toolkit includes these APIs:

For details, see the Redux Toolkit API Reference section in the docs.

RTK Query

RTK Query is provided as an optional addon within the @reduxjs/toolkit package. It is purpose-built to solve the use case of data fetching and caching, supplying a compact, but powerful toolset to define an API interface layer for your app. It is intended to simplify common cases for loading data in a web application, eliminating the need to hand-write data fetching & caching logic yourself.

RTK Query is built on top of the Redux Toolkit core for its implementation, using Redux internally for its architecture. Although knowledge of Redux and RTK are not required to use RTK Query, you should explore all of the additional global store management capabilities they provide, as well as installing the Redux DevTools browser extension, which works flawlessly with RTK Query to traverse and replay a timeline of your request & cache behavior.

RTK Query is included within the installation of the core Redux Toolkit package. It is available via either of the two entry points below:

import { createApi } from '@reduxjs/toolkit/query'

/* React-specific entry point that automatically generates
   hooks corresponding to the defined endpoints */
import { createApi } from '@reduxjs/toolkit/query/react'

What's included

RTK Query includes these APIs:

See the RTK Query Overview page for more details on what RTK Query is, what problems it solves, and how to use it.

Contributing

Please refer to our contributing guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Redux Toolkit.

redux-toolkit (reduxjs/redux-toolkit)

Searching Database…

What is this?Redux Toolkit is the official, opinionated toolset for writing Redux logic, bundling the standard patterns (store setup, reducers, actions, async logic, normalized data) into a small set of APIs so you don't have to hand-write boilerplate.
Is this a standalone state manager or does it still need Redux?It's a library that wraps and extends Redux itself, not a replacement. It's the recommended way to write Redux logic, including a built-in data fetching layer called RTK Query.
How do I add it to an existing app?Install it as an NPM package for use with a bundler or Node, or start fresh with the official Redux Toolkit + TS template for Vite or Next's with-redux template, both preconfigured with React-Redux.
Do I need React to use it?No, Redux Toolkit itself is framework-agnostic (it's used alongside React-Redux for React apps), and there's also a precompiled ESM build that can be loaded directly via a script tag in the browser.
What does it deliberately not handle?It's scoped narrowly: it doesn't prescribe reusable encapsulated Redux modules, folder/file structure conventions, or how to manage entity relationships in the store.
What is RTK Query?RTK Query is an optional data-fetching and caching layer built into the package on top of Redux Toolkit's core, letting you define API endpoints with createApi() instead of hand-writing fetch/caching logic.
What's the main API for defining reducers and actions together?createSlice() combines createReducer() and createAction(): you give it a name, initial state, and reducer functions, and it generates the slice reducer plus matching action creators and types automatically.
How does configureStore simplify setting up a Redux store?configureStore() wraps the original createStore with simplified options, auto-combining slice reducers, adding supplied middleware, including redux-thunk by default, and enabling the Redux DevTools Extension out of the box.
How do I write immutable updates without switch statements?createReducer() lets you supply a lookup table of action types to reducer functions, and it uses Immer internally so you can write normal-looking mutative code like 'state.todos[3].completed = true'.
Creator
reduxjs
Size
43.5 MB
Stars
11.2K
Age
8y
Commits · 90 Days