当前位置: 首页 > news >正文

redux 数据流通的过程?

Redux 数据流通的完整过程(单向数据流)

Redux 的核心思想就是:状态只存在一个地方,所有变化都是可预测的、可追踪的,并且遵循单向数据流。

下面是完整流程,从 UI 到 Action → Reducer → Store → UI:

1. UI 触发 Action

UI(React 组件)中用户操作,触发一个 action:

dispatch({type: 'ADD_TODO',payload: '学习 Redux'
})

也可能是通过 action creator:

dispatch(addTodo('学习 Redux'));

Action 只是一个普通对象,描述“发生了什么”。

2. dispatch(action) 发送给 Store

dispatch() 是唯一触发状态更新的方式。

Redux 接到 action 后,会把它交给 reducer 处理。

3. Reducer 根据 Action 更新 State(纯函数)

Reducer 是一个纯函数:

(state, action) => newState

示例:

function todoReducer(state = initialState, action) {switch (action.type) {case 'ADD_TODO':return {...state,list: [...state.list, action.payload]};default:return state;}
}

Reducer 不能修改原 state,只能返回新 state。

4. Store 保存新 State

Redux Store 接收到 reducer 产出的 newState

覆盖原 state
保存最新的全局状态

5. UI(React)重新渲染

React-Redux(connect / useSelector)会订阅 store:

当 store 改变时:

  • 自动触发组件重新渲染
  • UI 更新为最新数据

举例:

const todos = useSelector(state => state.todos);

当 state 更新时,该组件会自动刷新。

Redux 数据流闭环:

   UI 触发事件↓dispatch(action)↓Reducer 计算新 state↓Store 更新状态↓
React UI 自动刷新

全程 单向数据流(One-way data flow)
状态变化可追溯
数据管理可控、稳定

简单举例(完整流程)

// 1. Action Creators
const add = () => ({ type: 'ADD' });// 2. Reducer
function counter(state = 0, action) {switch (action.type) {case 'ADD':return state + 1;default:return state;}
}// 3. Component
function App() {const count = useSelector(state => state.counter);const dispatch = useDispatch();return (<button onClick={() => dispatch(add())}>点击 +1 ({count})</button>);
}

按下按钮:

  • dispatch(send action)
  • reducer(state + 1)
  • store 更新
  • UI 自动刷新

总结

Redux 数据流就是 5 步:

  1. 用户操作 → dispatch(action)

  2. Store 接收 action

  3. Reducer 返回新 state

  4. Store 保存 state

  5. React UI 自动刷新

关键词:单向数据流、可预测性、纯函数 reducer、集中式 store

http://www.jsqmd.com/news/51153/

相关文章:

  • Cloudera CDH迁移到 华为MRS使用场景分析与思考,是国内大数据行业的踌躇不前的原因?
  • 小米6 MIUI11 root Magisk Xposed 框架完整刷机图文教程
  • 金融交易防护:国密 SSL 证书在网银与移动支付中的核心作用 - 详解
  • 2025年热门的推车脚轮厂家选购指南与推荐
  • 2025辅酶Q10十大优选品牌!成分+口碑实测,护心抗氧化效果好的直接选匠医生
  • 2025年门窗五金系统生产厂家权威推荐榜单:智能铝合金门窗‌/高端系统门窗‌/系统门窗‌源头厂家精选
  • 深圳五大初中英语一对一辅导机构2026权威盘点
  • 2025年市场靠谱的格宾石笼网实力厂家哪家好,镀锌低碳钢丝石笼网/柔韧抗压石笼网/双隔板石笼网/抗冲击抗腐蚀石笼网格宾石笼网源头厂家选哪家
  • DNS查询后使用http发送请求
  • 2025年专业汽车窗膜制造厂推荐榜单
  • 时序数据库 IoTDB 集成 SpringBoot Starter,实现时序数据库“零配置”接入
  • 了解Java
  • 2025年热门的5寸脚轮用户好评厂家排行
  • 实用指南:MoreFixes
  • JavaScript-面向对象编程原则-全-
  • 2025年比较好的防缠绕脚轮品牌厂家排行榜
  • 一文厘清:CRM与SCM、ERP、PLM、WMS、MES、QMS、SCADA等系统关系 - SaaS软件
  • 鼠标位置
  • 2025年口碑好的门式堆垛机厂家推荐及采购指南
  • 2025年宁波GEO优化服务商综合实力排行榜TOP10权威发布
  • 2025年11月石墨烯电地暖品牌综合评测与选购指南
  • 2025年热门的托盘堆垛机实力厂家TOP推荐榜
  • 现今比较好的空气净化一体机优质厂家推荐
  • cocos 用widget将ui组件固定在屏 随着分辨率自适应 编辑器界面canvas作为手机屏参考 将ui组件放进去 deepseek解答 - 教程
  • 日记31
  • 2025年11月石墨烯供热品牌权威推荐与选购指南
  • 一文读懂 Linux 系统与常用命令
  • 2025年11月石墨烯供热品牌比较:哪家靠谱?专业指南与推荐
  • 2025下半年江苏徐州油浸式变压器、干式变压器和电器设备工厂推荐指南:五大优质供应商深度解析
  • 实用指南:stm32串口烧录与升级方法详解