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…

这是什么?Redux Toolkit 是官方推荐的 Redux 逻辑编写工具集,它把标准写法(store 配置、reducer、action、异步逻辑、规范化数据)打包成一小套 API,让你不必手写大量样板代码。
它是独立的状态管理工具,还是仍然需要 Redux?它是一个封装并扩展了 Redux 本身的库,而不是替代品。它是编写 Redux 逻辑的推荐方式,还内置了一个名为 RTK Query 的数据请求层。
怎样把它加到现有应用中?可以把它作为 NPM 包安装,配合打包工具或 Node 使用;也可以从头开始,使用官方的 Redux Toolkit + TS 模板(适用于 Vite),或 Next 的 with-redux 模板,这两个模板都已预先配置好 React-Redux。
使用它需要 React 吗?不需要。Redux Toolkit 本身与框架无关(在 React 应用中它与 React-Redux 搭配使用)。另外还提供了预编译的 ESM 版本,可以在浏览器中通过 script 标签直接加载。
它刻意不处理哪些内容?它的职责范围很窄:不规定可复用、封装好的 Redux 模块写法,不规定文件夹和文件结构约定,也不规定如何管理 store 中的实体关系。
什么是 RTK Query?RTK Query 是建立在 Redux Toolkit 核心之上、内置于该包中的可选数据请求与缓存层。你可以用 createApi() 定义 API 端点,而不必手写请求和缓存逻辑。
同时定义 reducer 和 action 的主要 API 是什么?createSlice() 结合了 createReducer() 和 createAction():你只需提供名称、初始状态和 reducer 函数,它就会自动生成 slice 的 reducer,以及对应的 action 创建函数和类型。
configureStore 如何简化 Redux store 的设置?configureStore() 封装了原始的 createStore,提供了简化的配置选项:自动合并各个 slice 的 reducer,添加所提供的中间件,默认包含 redux-thunk,并开箱即用地启用 Redux DevTools 扩展。
不用 switch 语句,怎样编写不可变更新?createReducer() 允许你提供一个由 action 类型到 reducer 函数组成的查找表。它内部使用 Immer,因此你可以像平常一样编写看似可变的代码,例如 'state.todos[3].completed = true'。
Creator
reduxjs
Size
43.5 MB
Stars
11.2K
Age
8y
Commits · 90 Days