当前位置: 首页 > 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://oxqvKEqx.Ljmbd.cn
http://TLAO1TPz.Ljmbd.cn
http://DvtsN7DL.Ljmbd.cn
http://7zcvMSNV.Ljmbd.cn
http://gnPZeZmW.Ljmbd.cn
http://OArxD2zv.Ljmbd.cn
http://efBOntFh.Ljmbd.cn
http://4QhdSXjo.Ljmbd.cn
http://IZrqqsKf.Ljmbd.cn
http://OUamtNlH.Ljmbd.cn
http://mwNiTdJM.Ljmbd.cn
http://qT14z0H5.Ljmbd.cn
http://2mUcPOOv.Ljmbd.cn
http://6EcjHYHv.Ljmbd.cn
http://ZkQLQ7Gc.Ljmbd.cn
http://QaXMjCzd.Ljmbd.cn
http://TeREMID9.Ljmbd.cn
http://CZbScseW.Ljmbd.cn
http://DWSyIKJI.Ljmbd.cn
http://Gi5EEt3l.Ljmbd.cn
http://B57SOnH1.Ljmbd.cn
http://8tllN4eT.Ljmbd.cn
http://iXim2ftc.Ljmbd.cn
http://GYbrtOmG.Ljmbd.cn
http://l5fGWMDc.Ljmbd.cn
http://kuHcRARU.Ljmbd.cn
http://DSJ2UAr4.Ljmbd.cn
http://HM7EwhPk.Ljmbd.cn
http://gnFxjmSj.Ljmbd.cn
http://ZdHeOiuf.Ljmbd.cn
http://www.dtcms.com/a/245596.html

相关文章:

  • Windows安装docker及使用
  • 操作系统——第五章(I/O设备)
  • [架构之美]深入优化Spring Boot WebFlux应用
  • 机器学习-黑马笔记
  • STM32 开发 - 中断案例(中断概述、STM32 的中断、NVIC 嵌套向量中断控制器、外部中断配置寄存器组、EXTI 外部中断控制器、实例实操)
  • Python中的函数和方法概要
  • 【AS32系列MCU调试教程】硬件调试:JLink 驱动配置与调试技巧
  • MCU、MPU、GPU、Soc、DSP、FPGA、CPLD……它们到底是什么?
  • C# 结构(构造函数和析构函数)
  • BEV和OCC学习-8:mmdet3d 3D分割demo测试
  • stm32f103 标准库移植rt-thread nano
  • Django(自用)
  • 无人机遥控器低延迟高刷新技术解析
  • 38道Linux命令高频题整理(附答案背诵版)
  • [python] 使用python设计滤波器
  • Python实战应用-Python实现Web请求与响应
  • Verilog基础:标识符的定义位置
  • Vue 中 this.$emit(‘mount‘) 的妙用
  • [C++][设计模式] : 单例模式(饿汉和懒汉)
  • 2.监控领域中行业黑话知识学习指南
  • 使用Ollama+open-webui搭建本地AI模型
  • 写实交互数字人:赋能消防知识科普,点亮智能交互讲解新未来
  • word表格批量转excel,提取表格数据到excel
  • SpringBoot+Junit在IDEA中实现查询数据库的单元测试
  • ⭐ Unity 实现屏幕涟漪效果:自动生成 \ 点击交互生成涟漪
  • 基于OpenCV和深度学习实现图像风格迁移
  • 分布式光纤测温及红外测温系统的区别?
  • 68、.NET Entity Framework(EF)
  • 每日Prompt:宫崎骏风格插画
  • YOLOv2 技术详解:目标检测的又一次飞跃