Redux的基础操作和思想

news2024/11/27 6:30:58

在这里插入图片描述

什么是Redux?

Redux是JavaScript应用的状态容器,提供可预测的状态管理! Redux除了和React一起用外,还支持其它框架;它体小精悍(只有2kB, 包括依赖),却有很强大的插件扩展生态! Redux提供的模式和工具使您更容易理解应用程序中的状态何时、何地、为什么以及如何更新,以及当这些更改发生时,您的应用程序逻辑将如何表现!

我什么时候应该用Redux?

Redux在以下情况下更有用:
●在应用的大量地方,都存在大量的状态
●应用状态会随着时间的推移而频繁更新,更新该状态的逻辑可能很复杂
●中型和大型代码量的应用,很多人协同开发

Redux库和工具

Redux是一个小型的独立JS库,但是它通常与其他几个包一起使用:
React-Redux:官方库,让React组件与Redux有了交互,可以从store读取些state,可以通过dispatch actions来更新store!
Redux Toolkit:推荐的编写Redux逻辑的方法。包含必不可少的包和函数。简化了大多数Redux任务,防止了常见错误,并使编写Redux应用变得更加容易。
Redux DevTools Extension:可以显示Redux存储中状态随时间变化的历史记录,方便调试应用程序。


redux基础流程:

在这里插入图片描述


1.创建store

在这里插入图片描述

为了在各个组件中,都可以把创建的store获取到,我们可以基于上下文的方
案:
1.在index.jsx中,基于ThemeContext.Provider把创建的store放在上下文中
2.因为所有组件最后都是在index.jsx中渲染,所有组件都可以理解为
index.jsx的后代组件,基于上下文方案,获取在上下文中存储的store就可以
了!!!

2.创建上下文并且引入

祖先组件中

错误写法:

在这里插入图片描述

浅拷贝,每次都是第一次产生的那个闭包!!!!所以无法更新

正确写法:

在这里插入图片描述

3.后代组件:类组件

在这里插入图片描述

3.后代组件:函数组件

在这里插入图片描述


redux具体的代码编写顺序

1.创建store,规划出reducer ,当中的业务处理逻辑可以后续不断完善,但是最开始reducer的这个架子需要先搭建取来

2.在入口中,基于上下文对象,把store放入到上下文中;需要用到store的组件, 从上下文中获取! !

3.组件中基于store,完成公共状态的获取、和任务的派发

  • 使用到公共状态的组件,必须向store的事件池中加入让组件更新的办法;只有这样,才可
    以确保,公共状态改变,可以让组件更新,才可以获取最新的状态进行绑定! !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

管理类联考——英语——趣味篇——完型填空

完型填空解题秘籍 一、答案分配规律 历年完型答案统计 A B C D 2010 DCBAA/BDCBA/CDDAC/BDCAB 5 5 5 5 2011 ACBDD/BACCB/DBACA/ADACD 6 4 5 5 2012 BBAAC/DAACB/DBCDD/ACCBD 5 5 5 5 2013 ADBDC/BBDBA/ADCCC/CABAD 5 5 5 5 2014 BACAD/ACCDB/ABCDB/DADCB 5 5 5 5 2015 CDC…

leetcode199. 二叉树的右视图(java)

二叉树的右视图 leetcode199. 二叉树的右视图题目描述 广度优先遍历二叉树专题 leetcode199. 二叉树的右视图 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/binary-tree-right-side-view 题目描述 给定一个二叉树的 根…

Python之del析构方法_、call__方法、方法没有重载

一、__del__方法(析构函数)和垃圾回收机制 __del__()称为“析构方法”,用于实现对象被销毁时所需的操作。比如:释放对象占用的资源,例如:打开的文件资源、网络连接等。 Python实现自动的垃圾回收,当对象没有被引用时&…

【AUTOSAR】UDS协议的代码分析与解读(四)----UDS 否定应答服务

6 全局信号需求 一些用于诊断功能的全局信号,应通过整车网络广播至所有的电控单元。信号应包含但不限于如下 所有列: 1) 日期和时间; 2) 蓄电池电压; 3) 点火开关信号, 包括OFF、ACC、ON、START; 4) …

【从删库到跑路】MySQL系列——详细讲解SQL的DDL,DML,DQL,DCL语句

🎊专栏【MySQL】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 文章目录 🍔关系型数据库⭐概念⭐特点 🍔MySQL数…

今天面了个支付宝拿35K出来的测试,真是砂纸擦屁股,给我露了一手啊

今年的春招已经开始了,很多小伙伴收获不错,有的已经拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文,为此咱这里也统一做一次大整理和大归类,这也算是划重点了。 俗话说得好&#xff0…

算法之迷宫解法

系列文章目录 文章目录 系列文章目录前言一、迷宫是什么?二、迷宫的生成迷宫的数据结构二维数组图 Prim算法生成地图什么是Prim算法?使用Prim对迷宫生成的实现 三、迷宫的解法深度优先遍历(DFS) 前言 前几天刷抖音刷到一个迷宫解…

鲸落送书第一期清华出版社系列丛书

1.《Rust项目开发实战》 《Rust项目开发实战》详细阐述了与Rust语言开发相关的基本解决方案,主要包括Rust语言简介、存储和检索数据、创建REST Web服务、创建完整的服务器端Web应用程序、利用Yew创建客户端WebAssembly应用程序、利用quicksilver创建WebAssembly游戏…

【Logback技术专题】「入门到精通系列教程」深入探索Logback日志框架的原理分析和开发实战技术指南(上篇)

深入探索Logback日志框架的原理分析和开发实战指南系列 Logback日志框架Logback基本模块logback-corelogback-classiclogback-accessLogback的核心类LoggerAppenderLayoutLayout和Appender filterlogback模块和核心所属关系 Logbackj日志级别日志输出级别日志级别介绍 Logback的…

MM32F3273G8P火龙果开发板MindSDK开发教程19 - littlefs文件系统的移植

MM32F3273G8P火龙果开发板MindSDK开发教程19 - littlefs文件系统的移植 1、littlefs简介 LittleFS 由ARM官方发布,ARM mbedOS的官方推荐文件系统,具有轻量级,掉电安全的特性。主要用在微控制器和flash上,特点如下: 掉…

java中的多线程、同步代码块、同步方法、锁

一、java中实现多线程的三种方式 (1)继承Thread类的方式进行实现; (2)实现Runnable接口的方式进行实现; (3)利用Callable接口和Future接口方式实现。 1.继承Thread类的方式进行实现 …

【性能优化】性能优化

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 性能优化运行效率![在这里插入图片描述](https://img-blog.csdnimg.cn/557680b0ca51484c9c2c6c2…

金升阳|三极管的开关速度如何提高?

​三极管是一种常见的电子器件,广泛应用于电路中。它的开关速度是指从关断到导通或从导通到关断的转换速度。提高三极管的开关速度可以提高电路的响应速度,从而提高系统的性能。本文将介绍一些常见的方法来提高三极管的开关速度。 一、选择合适的三极管 …

华为组播实验pim-dm

组播源配置: R1: [r1]dis current-configuration [V200R003C00] sysname r1 snmp-agent local-engineid 800007DB03000000000000 snmp-agent clock timezone China-Standard-Time minus 08:00:00 portal local-server load flash:/portalpage.zip drop illegal-mac…

2023年软件测试有前途吗?技术变革,测试人的进阶发展路线...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 软件测试行业是否…

瑞吉项目优化

Redis缓存菜品 动态构造key。客户端传来的分类id作为key。从redis中获取缓存的数据。根据分类Id,使用redisTemplate.opsForValue().get 方法获取缓存的数据。如果缓存数据存在,直接返回,无需访问数据库。如果不存在,需要查询数据…

Redis从入门到精通【高阶篇】之底层数据结构整数集(IntSet)详解

文章目录 0.前言1.IntSet基本详解1.1 整数集的压缩算法原理1.2 整数集编码方式选择原理1.2.1 判断逻辑1.2.2 举例说明 2. 源码解析2.1. intsetNew2.2. intsetAdd2.3. intsetRemove2.4. intsetFind2.5. intsetUpgradeAndAdd2.6 收获 3.总结4.思考题5. Redis从入门到精通系列文章…

【MySQL 数据库的命令操作】

目录 一、数据库的基本概念二、数据库的发展三、主流的数据库介绍五、关系数据库1、数据库的解释2、数据库的管理3、常用的数据类型4、常见的数据库结构5、SQL语句 四、MySQL 安装方法1、安装Mysql环境依赖包2、创建运行用户3、编译安装4.创建mysql用户5.修改mysql 配置文件6、…

手动将第三方资源加IOC容器中

说明:在SpringBoot中,我们可以通过在各层类上加注解(Mapper、Service等)声明Bean对象,在需要使用时,可直接使用AutoWirted注解自动装配。但如果是使用第三方依赖中的对象,因为源码不能修改&…

04 类图

类图 定义 类图显示了类(及其接口)、类的内部结构以及与其他类的联系,是面向对象分析和设计所得到的最重要的模型。 作用:可视化地表达系统的静态结构模型 类之间的几种关系:泛化(Generalization)、实现(…