@reduxjs/toolkit
是一个官方推荐的 Redux 工具包,旨在简化 Redux 的使用和提高开发效率。它集成了一些常用的 Redux 中间件和工具,包括创建 Redux store、编写 reducers、生成 action creators 等。主要特点包括:
-
包含 Redux 中常用的工具函数:
createSlice
:用于创建包含 reducer 函数和 action creators 的 Redux slice。configureStore
:用于创建 Redux store 的函数,集成了常用的 middleware,如 Redux Thunk。createReducer
:用于创建 reducer 函数的工具,支持 Immer 用于编写 immutable 更新逻辑。
-
提供了更现代化和简化的 API:
- 使用
createSlice
可以更快速地定义 reducer 和 action creators,减少样板代码。 - 集成的
configureStore
函数简化了创建 store 和应用中间件的过程,同时提供了更好的开发体验和调试支持。
- 使用
相比之下,react-redux
是一个用于在 React 应用中集成 Redux 的官方绑定库。它提供了 connect
高阶组件和 useSelector
、useDispatch
等 React hooks,用于在 React 组件中访问 Redux store 中的 state 和 dispatch action。主要特点包括:
- 连接 Redux 和 React:通过
Provider
组件将 Redux store 注入整个应用,使得所有组件能够访问到 Redux 中的状态。 - 提供了多种与 React 集成的方式:除了
connect
高阶组件外,还支持 hooks API,如useSelector
和useDispatch
,使得在函数组件中使用 Redux 变得更加简单和直观。
因此,@reduxjs/toolkit
和 react-redux
是两个不同的库,它们的关系是 @reduxjs/toolkit
可以用来简化和增强 Redux 的开发体验,而 react-redux
则提供了在 React 中使用 Redux 的一些便捷方式和工具。使用 @reduxjs/toolkit
可以让 Redux 的使用更加简洁和高效,同时仍然需要结合 react-redux
来在 React 应用中使用 Redux。