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

redux基本概念介绍 与 更新方式

 

 

Redux 核心组件及作用

1. Store (状态仓库)
  • 作用:应用状态的唯一数据源

  • 特点

    • 通过 createStore() 创建

    • 提供 getState() 获取当前状态

    • 提供 dispatch(action) 更新状态

    • 提供 subscribe(listener) 监听变化

javascript

import { createStore } from 'redux';
const store = createStore(rootReducer);
2. Action (动作)
  • 作用:描述状态变化的普通对象

  • 特点

    • 必须有 type 属性(字符串常量)

    • 可携带 payload(有效载荷数据)

    • 通过 action creator 函数创建

// Action 示例
{type: 'ADD_TODO',payload: {id: 1,text: 'Learn Redux'}
}// Action Creator
const addTodo = text => ({type: 'ADD_TODO',payload: { text }
});
3. Reducer (归约器)
  • 作用:纯函数,接收旧状态和 action,返回新状态

  • 特点

    • 禁止直接修改状态(必须返回新对象)

    • 无副作用(相同输入永远得到相同输出)

    • 通过 combineReducers 组合多个 reducer

// Reducer 示例
const todosReducer = (state = [], action) => {switch (action.type) {case 'ADD_TODO':return [...state, action.payload];case 'TOGGLE_TODO':return state.map(todo => todo.id === action.payload.id ? {...todo, completed: !todo.completed} : todo);default:return state;}
}

State更新过程详解:

Redux 核心原则

1. 单一数据源

整个应用状态存储在唯一 store 中,形成状态树

2. 状态只读

唯一改变状态的方式是 dispatch action,禁止直接修改

3. 纯函数修改

Reducer 必须是纯函数

  • 不修改输入参数

  • 不执行副作用操作

  • 相同输入 => 相同输出

http://www.dtcms.com/a/264110.html

相关文章:

  • 【网工|知识升华版|理论】ARQ机制|CSMA/CD协议
  • NetSuite 中如何在已关账期间内Unapply Customer Payment?
  • 数据结构day6——内核链表
  • 手机屏色斑缺陷修复及相关液晶线路激光修复原理
  • 一文讲清楚React合成事件机制和this的绑定问题
  • Pycharm命令行能运行,但绿色三角报错?
  • 51单片机制作万年历
  • java web2(黑马)
  • [Python] -基础篇7-新手常见Python语法错误及解决方案
  • 论文阅读:BLIPv1 2022.2
  • Java 大视界 -- Java 大数据在智能交通共享单车智能调度与停放管理中的应用(329)
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(四)- 职位数据可视化(FineBI)
  • 解决leetcode第3597题分割字符串
  • 【一起来学AI大模型】模型上下文协议(MCP)详解:背景、架构与应用
  • 从0开始学习R语言--Day35--核密度动态估计
  • Node.js-path模块
  • 12【进程间通信——管道】
  • 记本好书:矩阵力量:线性代数全彩图解+微课+Python编程
  • 【Go-策略模式】告别if/else hell,拥抱 Go 语言策略模式
  • js基础知识
  • 【组合数学】P11362 [NOIP2024] 遗失的赋值|普及+
  • 事务隔离级别深度解析:机制、语法与实战指
  • 力扣74 搜索二维矩阵
  • [密码学实战]深入解析ASN.1和DER编码:以数字签名值为例(三十一)
  • UniApp完全支持快应用QUICKAPP-以及如何采用 Uni 模式开发发行快应用优雅草卓伊凡
  • 从 Copilot 到 通用 Agent : 大厂在 AI Coding 上的应用和挑战
  • 华为云开始了“开发者空间 AI Agent 开发”活动
  • Anthropic 开源 LLM“电路追踪器”:首次可视化语言模型的“推理路径”!
  • SQLite与MySQL:嵌入式与客户端-服务器数据库的权衡
  • 使用mavros启动多机SITL仿真