当前位置: 首页 > 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.hn-smt.com/news/67234/

相关文章:

  • 一文厘清:CRM与SCM、ERP、PLM、WMS、MES、QMS、SCADA等系统关系 - SaaS软件
  • 2025年11月石墨烯供热品牌权威推荐与选购指南
  • JL-37数字式测斜仪 基坑,路基 坝体 山体滑坡等内部位移监测
  • 批量生成密码
  • 2025年热门的国标限流式保护器TOP实力厂家推荐榜
  • AI驱动通信的未来愿景与技术实践
  • 2025年口碑好的碳纤维装饰片材厂家最新热销排行
  • 2025年靠谱的新型建材厂家推荐及选择参考
  • 2025年质量好的中东展览特装权威排行榜
  • 2025年靠谱的办公室设计企业实力评级榜
  • 智慧安全管理系统公司推荐,2025智慧安全管理系统公司权威榜
  • 罗兰意筑全屋定制:2025上海高端全屋定制品牌
  • 2025上海全屋定制哪家性价比高?全屋定制品牌综合榜单
  • Jenkins的基本使用
  • 在 linux 操作系统中,使用 vim 打开一个文本文件时,出现中文乱码的原因和解决方法
  • 夺命雷公狗—好用的截图工具分享
  • 全国最好的有机农场推荐——德芳有机农场
  • 实验三 类和对象
  • 2025年11月管道除锈设备,管道涂塑设备,管道设备厂家品牌榜,严苛工况适配性深度解析!
  • 2025年11月管道3pe设备,管道设备,管道涂塑设备厂家权威推荐,96小时连续运行稳定性实测!
  • 珍藏于心底的时光,是记忆深处最美的花。
  • Go 语言结合 Tesseract OCR 解析验证码
  • 2025.11.25总结
  • 2025年反渗透一体机/软化水设备/中水再生水回用设备/净水处理设备厂家最新权威推荐:产能、专利、环保三维数据透视,行业数据用户口碑,工业/家用选择指南
  • 接入层傻瓜机引起的VLAN间环路
  • 逆序对数列-dp前缀和优化
  • 实用指南:云计算学习(三)——子网划分
  • 慢就是快 用在生活中
  • 实用指南:Kafka面试精讲 Day 30:Kafka面试真题解析与答题技巧
  • Tarjan算法总结