Redux中reducer 中为什么每次都要返回新的state!!!

news2024/11/26 0:55:36

Redux中reducer 中为什么每次都要返回新的state!!!


最近在学习react相关的知识,学习redux的时候遇到看到一个面试题:

如果Redux没返回新的数据会怎样?

这就是要去纠结为什么编写reducer得时候为什么不允许直接修改state,而且要返回新的引用。
事实上我去百度得到的答案全是说:直接返回会导致state修改后页面不刷新,源码中对新旧state做了浅比较。。。
我感觉很奇怪,根据我的想法查看源码什么时候去调用reducer,也就是你想要更改state的时候会发起dispatch(action) 源码如下:
redux->dispatch方法源码
currentReducer在你创建store的时候就直接赋值了,而listeners是得到当前所有的订阅事件(通过subscribe(listener)方法订阅能引起当前组件刷新的方法),然后对listeners遍历调用。不管reducer执行后返回的state是新的引用还是原始引用,在这里其实所有的订阅事件都会被调用,相关组件也会更新。
总的来说我不敢确定是否自己理解有误(如果有请告诉我非常感谢~~)。
根据官方文档的描述感觉更多像是一种默认规则而不是因为UI不刷新所以state才必须返回新引用。
官方文档中的解释:cn.redux.js.org
在这里插入图片描述

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

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

相关文章

LT8711HE 是一款高性能的Type-C/DP1.2到HDMI2.0转换器

LT8711HE 1.描述 LT8711HE是一种高性能的Type-C/DP1.2到HDMI2.0转换器,设计用于连接USB Type-C源或DP1.2源到HDMI2.0接收器。LT8711HE集成了一个DP1.2兼容的接收器,和一个HDMI2.0兼容的发射机。此外,还包括两个CC控制器,用于CC通…

Linux Maven 安装与配置

目录 Maven 下载 解压缩下载的文件 移动Maven文件夹 配置环境变量 验证安装 注意 Maven 下载 官方地址 Maven – Download Apache Maven,下载完成后,解压到合适的位置即可; 解压缩下载的文件 解压缩下载的文件: 使用以下命…

Malloc动态内存分配

在C语言中我们会使用malloc来动态地分配内存,这样做的一个主要理由是有些数据结构的大小只有在运行时才能确定。例如,如果你正在编写一个程序,需要用户输入一些数据,但你不知道用户会输入多少数据,那么你就需要使用动态…

VGPU理解与实践包含虚拟机显卡直通,k8s安装,GPU-manager使用与实践测试

提示:文章分为三部分:物理GPU绑定虚拟机、k8s安装、gpu-manager虚拟化实现与测试 文章目录 前言一、什么是VGPU?二、此文件会拆分成三部分:1.物理机显卡直通虚拟机2.安装K8S3.安装GPU-manager、测试全流程 总结 前言 用户角度GPU…

【Linux】HTTPS协议——应用层

1 HTTPS是什么? HTTPS也是⼀个应⽤层协议.是在 HTTP 协议的基础上引⼊了⼀个加密层. HTTP 协议内容都是按照⽂本的⽅式明⽂传输的. 这就导致在传输过程中出现⼀些被篡改的情况. HTTP VS HTTPS 早期很多公司刚起步的时候,使用的应用层协议都是HTTP&am…

7.7 通俗易懂详解稠密连接网络DenseNet 手撕稠密连接网络DenseNet

一.思想 与ResNet的区别 DenseNet这样拼接有什么好处?DenseNet优点 对于每一层,使用前面所有层的特征映射作为输入,并且其自身的特征映射作为所有后续层的输入。 DenseNet的优点: 缓解了消失梯度问题,加强了特征传播&#xff0c…

在java集合HashMap中如何替换某一个键值

replace() 方法替换 hashMap 中是指定的 key 对应的 value。 replace() 方法的语法为: hashmap.replace(K key, V newValue) 或 hashmap.replace(K key, V oldValue, V newValue)示例代码如下(把hashmap集合中的值为USA 的记录替换 成“US”&#xff0…

2023牛客暑期多校训练营7(C/I/M)

目录 C.Beautiful Sequence I.We Love Strings M.Writing Books C.Beautiful Sequence 思路:显然若得到了a[1],则整个序列a我们都知道了。所以我们要求出第k大的a[1],这个可以利用序列a为不递减序列的性质来得出。 首先,由题…

Unity开发笔记:将Texture2D裁剪出指定圆角用来输出png等图片

学习记录整理,自用,也希望能帮助到有相同需求的人。 圆角原理见大佬的博客: 圆角原理 简单来说就是将图片分成四个区域,找出拐角处的拐子的设置为透明 ![](https://img-blog.csdnimg.cn/a788825545614816895a9cca42ddc4a9.png 如…

Feign实现远程调用

文章目录 Feign引入依赖添加注解编写Feign的客户端测试自定义配置配置文件方式Java代码方式 Feign使用优化引入依赖配置连接池 总结 Feign Feign是一个基于Java的声明式Web服务客户端,由Netflix开发。它简化了使用RESTful API进行远程服务调用的过程,并…

SketchUp Pro 2023 for Mac(草图大师)

SketchUp Pro 2023 for Mac提供了简单易学的用户界面和强大的工具集,使用户可以快速创建复杂的3D模型。其中包括智能绘图工具、自动生成几何体、高级纹理编辑器、实时阴影、交互式地形建模工具等功能。 一、创建形象化您的想法 手工绘制的乐趣。超级智能的3D建模软…

IDEA搭建Springboot项目

一、配置Maven(参考Maven配置教程) 注意: 1.maven版本的选择,一般情况下,不建议下载最新版本,这种会遇见很多没有必要的麻烦!如我在使用最新版本apache-maven-3.9.0的时候就遇见了不知名BUG。 …

【C++】开源:abseil-cpp基础组件库配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍abseil-cpp基础组件库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#…

亚马逊公告:订单存档政策调整,超过两年将于9月起存档

站斧浏览器获悉: 亚马逊新公告:2023年9月起,亚马逊美国站和欧洲站宣布将调整订单数据存档政策。这一政策的调整旨在保护客户的个人隐私和数据安全,从而提高客户的购物体验。据悉,所有历时超过两年以上的订单将按月进行…

【C++】AVL(平衡二叉搜索树)树的原理及实现

文章目录 一、引言 二、AVL树的概念 三、AVL树的插入 3、1 AVL树的简单插入 3、2 旋转分类 3、2、1 新节点插入较高右子树的右侧:左单旋 3、2、2 新节点插入较高左子树的左侧:右单旋 3、2、3 新节点插入较高左子树的右侧:左右双旋&#xff08…

【Eureka技术指南】「SpringCloud」从源码层面让你认识Eureka工作流程和运作机制(下)

原理回顾 Eureka Server 提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。Eureka Client 是一个Java 客…

SAP Fiori 将GUI中的自开发报表添加到Fiori 工作台

1. 首先我们在workbench 中开发一个GUI report 这里我们开发的是一个简单的物料清单报表 2. 分配一个事务代码。 注意这里的SAP GUI for HTML 要打上勾 3. 创建语义对象( Create Semantic Object) 事物代码: path: SAP NetWeaver ->…

MyBatis学习——第六篇(mybatisPlus)

1:什么是mybatisPlus 1.1:mybatisPlus介绍 mybatisPlus官网:MyBatis-Plus mybatisPlus是一个mybatis的增强工具,只做增强,不做改变。目的是为了简化开发代码,提高效率而生的。 1.2:mybatisPl…

【Android】在Windows11系统上运行VisualStudioEmulator forAndroid

这是一个x86架构处理器的安卓模拟器, 在Visual Studio开发工具上用的,也是运行在Hyper-V虚拟机上的,相比其它的模拟器的性能好,占用磁盘空间小,操作简洁方便,非常适合开发人员调试安卓手机模拟。 安装 首…

网络:路由

1. 路由器 路由器工作在三层,每个接口都处于不用的网段中,即不同的广播域。但大多情况下,两台路由器直接相连的接口是同一个广播域,即一个网段。 2. 路由 通俗地说,去往目标的路径。网络中是指导IP报文转发的路径信息…