当前位置: 首页 > 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.gsyq.cn/news/61053.html

相关文章:

  • 2025年热门的推车脚轮厂家选购指南与推荐
  • 深圳五大初中英语一对一辅导机构2026权威盘点
  • 2025年专业汽车窗膜制造厂推荐榜单
  • 实用指南:MoreFixes
  • 2025年比较好的防缠绕脚轮品牌厂家排行榜
  • 2025年11月石墨烯电地暖品牌综合评测与选购指南
  • 日记31
  • 2025年11月石墨烯供热品牌比较:哪家靠谱?专业指南与推荐
  • 2025 年 11 月 CNC 加工中心实力厂家权威推荐榜:精密零件/五轴模具/高速龙门加工,专业定制与技术创新深度解析
  • 非递归线段树——2024.11.26 鲜花
  • 2025年靠谱的料箱立体库厂家最新热销排行
  • xinyoudui 宝石装置
  • 二叉搜索树与B树引入
  • 2025年评价高的阻燃控制电缆厂家推荐及选购参考榜
  • 2025 年中国十大有机蔬菜基地排行榜:有机蔬菜种植的典范
  • 2025 年华东有机农场哪家好:德芳有机农场成为中国有机农场的典范
  • SWAT模型应用 - 详解
  • 【GitHub每日速递 20251126】Windows更新致WSA安装故障?多版本下载、使用指南及问题解决全揭秘
  • AI驱动通信的未来愿景与技术实践
  • PHP True Async RFC 被拒——原生异步离 PHP 还有多远?
  • [nanoGPT] 编排训练 | `get_batch` | AdamW | `get_lr` | 分布式训练(DDP) - 指南
  • 多币互冲-多币币v6具体参数配置! - duck
  • 2025年口碑好的碳纤维装饰片材厂家最新热销排行
  • 2025年知名的非标多孔钻床厂家实力及用户口碑排行榜
  • 如何在Python中使用SQLite数据库进行增删改查操作?
  • 2025年比较好的一次性餐盒注塑机行业内口碑厂家排行榜
  • .NET+AI | MEAI | 会话缓存(6)
  • 2025年靠谱的新型建材厂家推荐及选择参考
  • 2025年靠谱的办公室设计企业实力评级榜
  • 2025 年 11 月高壓清洗服務權威推薦榜:專業上門施工與管道保養,涵蓋市政/家庭/工廠/園區,高效清潔與貼心服務深度解析