redux执行流程
创始人
2025-01-09 14:35:35
0
  1. Store

    • 定义:存储应用的状态,是一个对象树(object tree)。
    • 作用:整个应用只有一个 Store,作为状态的唯一数据源,保存了应用的所有状态。
    • 特点:Store 是只读的,不能直接修改它的内容;只能通过触发 Action 来间接地修改 Store。
  2. Action

    • 定义:描述发生了什么,是一个普通的 JavaScript 对象。
    • 组成:通常包含一个 type 字段,用来标识 Action 的类型,以及一些额外的数据(payload),来传递变化所需的参数。
    • 例子{ type: 'INCREMENT', payload: 1 }
  3. Reducer

    • 定义:根据 Action 修改并返回新的状态,是一个纯函数。
    • 作用:接收当前的状态和 Action,返回一个新的状态。
    • 特点:Reducer 必须是纯函数,不能改变传入的参数,只能返回新的状态对象。
    • 例子
       javascript 

      复制代码

      function counter(state = 0, action) { switch (action.type) { case 'INCREMENT': return state + action.payload; case 'DECREMENT': return state - action.payload; default: return state; } }

  4. Dispatch

    • 定义:触发 Action 以改变状态。
    • 作用:将 Action 传递给 Store,从而触发 Reducer 执行,最终导致状态的更新。
    • 使用store.dispatch({ type: 'INCREMENT', payload: 1 })
  5. Subscription

    • 定义:监听状态变化,更新 UI。
    • 作用:通过 store.subscribe 注册回调函数,当状态发生变化时,该回调函数会被调用,用于更新 UI 或执行其他副作用操作。
    • 使用const unsubscribe = store.subscribe(() => { /* 更新UI逻辑 */ })
    • 取消订阅:调用 unsubscribe 函数可以取消订阅。

完整流程:

  1. UI 组件触发 dispatch 方法发送 action
  2. dispatchaction 传递给 reducer
  3. reducer 根据 action 类型和当前 state 生成新的 state
  4. store 更新 state,并通知所有订阅者。
  5. 订阅者收到通知,更新 UI。

相关内容

热门资讯

现就发布提示"老友记... 现就发布提示"老友记 十三道辅助"总是存在有辅助器(哔哩哔哩)1、操作简单,无需老友记 十三道辅助手...
一分钟揭秘!!微乐小程序免费黑... 一分钟揭秘!!微乐小程序免费黑科技(外挂),收i就微乐小程序游戏破解器都是有挂总结1、实时透视辅助更...
针对!we poker免费辅助... 针对!we poker免费辅助器,福建天天开心福州器真的假的,其实是真的有辅助app(哔哩哔哩)1、...
据报道!圣游辅助软件,广东闲来... 据报道!圣游辅助软件,广东闲来app辅助(其实存在有app)-哔哩哔哩1、许多玩家不知道广东闲来ap...
2026版技巧"开心... 2026版技巧"开心赢三张自建房有挂吗"都是存在有辅助挂(哔哩哔哩)1、下载好开心赢三张自建房有挂吗...
教学盘点!微信小程序黑科技(外... 教学盘点!微信小程序黑科技(外挂),手机微乐小程序自建房透视免费原来详细教程教学盘点!微信小程序黑科...
据悉!哈糖大菠萝可以开挂吗,心... 据悉!哈糖大菠萝可以开挂吗,心悦提坑神器软件下载,好像有辅助攻略(哔哩哔哩)1、这是跨平台的哈糖大菠...
出乎意料的是!闲逸碰胡金钟罩,... 出乎意料的是!闲逸碰胡金钟罩,微玩体育辅助器(一贯有挂脚本)-哔哩哔哩暗藏猫腻,小编详细说明闲逸碰胡...
透视安卓版"鱼乐达人... 透视安卓版"鱼乐达人脚本辅助"好像是真的有辅助技巧(哔哩哔哩)暗藏猫腻,小编详细说明鱼乐达人脚本辅助...
指导大家!微信小程序免费黑科技... 指导大家!微信小程序免费黑科技(外挂),小程序微乐辅助器免费版本来有挂秘籍1、完成辅助器v3.3的残...