当前位置: 首页 > 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 = 

相关文章:

  • 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.监控领域中行业黑话知识学习指南
  • 申报网站/游戏优化是什么意思?
  • 上海跨境电商网站制作/地推公司
  • 做传销网站的程序员犯法吗/网络营销案例分析ppt
  • 做财经直播网站/百度怎么联系客服
  • 门户网站建设制作/自己如何制作一个网站
  • 闵行网站制作/网站如何优化排名软件