Lazy loaded image
技术分享
学习 Redux 和 React-Redux
字数 678阅读时长 2 分钟
2021-11-13
2025-5-10
type
status
date
slug
summary
tags
category
icon
password

学习 Redux 和 React-Redux

Redux 是 React 生态中最经典的状态管理库之一,而 react-redux 是它与 React 的连接桥梁。本文将从基本概念到源码原理,帮助你真正弄懂 react-redux 的工作方式和使用方法。

一、为什么需要 Redux?

在大型 React 应用中,组件之间的状态共享变得复杂,尤其是非父子组件的通信。虽然可以使用 Context,但当数据流变得复杂时,Redux 提供了更明确的数据流模型:
  • 单一数据源(store)
  • 状态只读(不可直接修改 state)
  • 用纯函数 reducer 描述状态变化
Redux 本身是框架无关的,React 中通过 react-redux 实现无缝集成。

二、React-Redux 的核心:Provider 与 connect(或 hooks)

1. Provider 提供全局 store

2. 使用 connect 高阶组件


三、推荐方式:使用 Hooks (useSelector + useDispatch)

useSelector 类似于 mapStateToProps
useDispatch 替代 mapDispatchToProps

四、Redux 工作流程图


五、如何定义 store 与 reducer


六、React-Redux 源码核心简析

React-Redux 的核心其实是:
  • Provider 使用 React Context 向下传递 store
  • connectuseSelector/useDispatch 订阅 store 状态变化,触发组件更新
Hook 模式依赖 React 的 useContextuseReduceruseLayoutEffect 实现高效渲染。

七、总结:React-Redux 的优势

  • 明确的数据流(单向)
  • 强大的调试工具(Redux DevTools)
  • 与中间件(如 redux-thunk)结合支持异步
  • 配合 TypeScript 更加严谨和可维护

Redux 并不是每个项目都必须用,但当你的组件之间存在大量状态共享、逻辑复杂时,react-redux 是一个强大且成熟的解决方案。如果你掌握了 Hooks,对 Redux 的集成会更加轻松。
下一步我们可以深入讲讲 Redux 中的中间件机制、redux-thunk 或 redux-toolkit,要继续看看吗?
上一篇
详解 React useCallback 和 useMemo
下一篇
React高阶组件(HOC)的使用