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

React 集中状态管理方案

上一篇文章中介绍了 React 基础状态管理方案,React 内部提供了基础状态管理的办法,但是,如果项目逐渐趋于复杂,以上普通状态管理方案可能就略显单薄,这时我们需要需求更好的状态管理方案—集中状态管理。 集中状态其初衷是在不同组件模块中共享状态,比如以下状态适合放在集中状态里:

1. 用户登录信息数据;

2. 页面数据希望在页面中各个组件中修改;

3. 路由状态;

以下状态不适合放在集中状态里:

1. Input 框组件聚焦状态;

2. Modal 组件的打开状态;

React 应用中的状态管理是一个关键问题,尤其是在应用变得复杂时。集中状态管理方案可以帮助我们更好地管理状态变化和数据流。下面详细介绍三种常用的 React 状态管理方案:Redux、Zustand 和 Jotai。

1. Redux(建议用 redux-toolkit)

Redux 是一个非常棒的状态管理库,他提出了单向数据流,中间件等概念,能很好地进行状态结构设计。前面存储变量的对象,我们给他一个确切的定义—状态仓库,不同于对象操作的是:任何时候你都不能直接去更改状态仓库中的值,而是需要使用纯函数进行状态修改。

什么是纯函数?

1. 如果函数的调用参数相同,则永远返回相同的结果。它不依赖于程序执行期间函数外部任何状态或数据的变化,必须只依赖于其输入参数;

2. 该函数不会产生任何可观察的副作用;

1.1. 用法

Redux 是一个流行的状态管理库,使用单一状态树来管理整个应用的状态。以下是 Redux 的基本用法:

1. 安装 Redux 和 React-Redux

npm install redux react-redux

2. 创建 Action

// actions.js
export const increment = () => ({ type: 'INCREMENT' });
export const decrement = () => ({ type: 'DECREMENT' });

3. 创建 Reducer

// reducer.js
const initialState = { count: 0 };const counterReducer = (state = 
http://www.xdnf.cn/news/995419.html

相关文章:

  • CentOS变Ubuntu后后端程序SO库报错,解决方案+原理分析!
  • .NET 中的异步编程模型
  • [电赛]MSPM0G3507学习笔记(二) GPIO:led与按键(流水灯、呼吸灯,短按长按与双击,ui预览)
  • 基于OpenCV和深度学习实现图像风格迁移
  • VR 地震安全演练:“透视” 地震,筑牢企业安全新护盾​
  • 16层混压PCB的精密重构:高频基板局部化的黄金法则
  • 【Go-补充】实现动态数组:深入理解 slice 与自定义实现
  • 机器学习 [白板推导](六)[核方法、指数族分布]
  • 【WebSocket】WebSocket架构重构:从分散管理到统一连接的实战经验
  • 新零售视域下实体与虚拟店融合的技术逻辑与商业模式创新——基于开源AI智能名片与链动2+1模式的S2B2C生态构建
  • C#事件基础模型代码
  • 【技术追踪】MMFusion:用于食管癌淋巴结转移诊断的多模态扩散模型(MICCAI-2024)
  • Linux部署bmc TrueSight 监控agent步骤
  • Java学习笔记之:初识nginx
  • js判断手机操作系统(ios、安卓、华为)
  • 分享在日常开发中常用的ES6知识点【面试常考】
  • “储能+热泵+AI”三维驱动,美的能源定义能源科技新未来
  • 【深度解读】混合架构数据保护实战
  • 从零搭建智能家居:香橙派+HomeAssistant实战指南
  • LlamaIndex 工作流 上下文状态和流式传输事件
  • SpringBoot+Junit在IDEA中实现查询数据库的单元测试
  • 代码训练LeetCode(32)Z字形变换
  • chrome138版本及以上el-input的textarea输入问题
  • 鸿蒙北向应用开发:新增ts文件出现的问题
  • 【狂飙AGI】第1课:大模型概述
  • QT+VTK 中QWidget与QVTKOpenGLNativeWidget的使用
  • python打卡第52天
  • 如何从 Ansys SpaceClaim 模型中提取 CAD 数据,该模型是在我计算机上安装的未来版本中创建的?
  • Kafka问题排查笔记
  • 全局搜索正则表达式grep