大白话说说redux

redux的3个重要概念

  1. store 就是用来存放应用的各种状态的
  2. action 就是用来描述应用发生了什么动作的,注意理解他是对动作的描述
  3. reducer 就是用来处理应用的动作,并且决定怎么去更新应用存放在store里面的状态。

redux的3个原则

  1. 应用的所有状态存储为redux store的单一对象
  2. 应用不能直接更改store存储的状态,你需要让redux通过action来知道需要更改状态
  3. 你需要通过写一个reducer函数来更新状态,reducer解释两个参数,(之前的状态,action),函数返回最新的state.
    在这里插入图片描述

action 和 action creator

在这里插入图片描述

reducer

reducer根据action的type做相应的动作。
在这里插入图片描述

store是怎么实现保存应用的状态的?

创建store的时候,需要传的reducer参数给到store. 而reducer里面,保存了应用的状态。

const store = createStore(reducer)

整个处理流程,如下图

在这里插入图片描述
所以redux的整个流程,用大白话总结起来:顾客[app] 朝店里[store],用喇叭[actiong creator]喊了声[dispatch]买蛋糕[action],店员[reducer]听到后,启动买蛋糕的流程[去架子上拿蛋糕,库存减1…]. 顾客不能直接自己到架子上拿蛋糕[app 不能直接操作状态],否则就容易乱套。

++ 对reducer函数里面的 …state 的理解
…state 是对原来的 state 对象进行了浅拷贝,但这个拷贝过程并不涉及对 state 变量本身的重新赋值。它实际上是在创建一个新对象,并且这个新对象包含了原 state 对象中的所有属性和对应的值。这个新对象随后会用新的值更新特定的属性,而不影响原始的 state 对象。

在 Redux 中,reducer 函数必须是纯函数,意味着它们不能修改其接收到的输入参数,包括 state。因此,我们使用对象扩展运算符 … 来创建 state 的一个新的副本,然后在这个新副本上做出修改并返回,而原来的 state 对象保持不变。这样做是为了保持状态的不可变性,它是 Redux 架构中非常重要的一个概念。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8s进阶之路-核心概念/架构:

架构:Master/Node Master组件--主控节点{ 负责集群管理(接收用户事件转化成任务分散到node节点上)} Apiserver: 资源操作的唯一入口,提供认证、授权、API注册和发现等机制 Scheduler : 负责集群资源调度&am…

【Larry】英语学习笔记语法篇——非谓语动词和从句是一回事

目录 非谓语动词和从句是一回事 不定式:名词/形容词/副词 1、不定式 名词属性的不定式:作为主语、表语、宾语 形容词属性的不定式:作后置定语 副词属性的不定式:作状语 副词属性的不定式:作插入语 不定式的逻辑…

【动态规划专栏】专题一:斐波那契数列模型--------2.三步问题

本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小…

OpenAI发布Sora,另一个层次的黑科技

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

【lesson62】网络通信UdpSocket版

文章目录 UdpSocketUdpServer.hppUdpServer类成员变量解释成员函数解释 UdpServer的实现ServerIinit的实现socketbindhtonsinet_addr具体实现 ServerStart的实现recvfromsendtontohsinet_ntoa具体实现 ~UdpServer函数实现UdpServer.hpp整体完整代码 UdpServer.ccUdpClient.ccTh…

Windows 重启 explorer 的正确做法

目录 一、关于 Restart Manager 二、重启管理器实例 三、完整实现代码和测试 本文属于原创文章,转载请注明出处: https://blog.csdn.net/qq_59075481/article/details/136179191。 我们往往使用 TerminateProcess 并传入 PID 和特殊结束代码 1 或者…

【软考中级备考笔记】计算机体系结构

计算机体系结构 2月19日 – 天气:阴转小雪 1. 冯诺依曼计算机体系结构 冯诺依曼将计算机分为了五大部分,分别是: 控制器:主要负责协调指令到执行运算器:负责算数和逻辑运算存储器:负责存储在指令执行过程…

自定义Linux登录自动提示语

设置提示语的方式 在Linux系统中,可以通过修改几个特定的文件来实现在用户登录时自动弹出提示语。以下是几个常用的方法: 1. 修改/etc/issue文件: 这个文件用于显示本地登录前的提示信息 sudo vi /etc/issue在项目合作的时候,…

springboot-vue-供应商招投标采购在线询价管理系统

1. 技术栈 后端(Spring Boot): 控制器(Controller)处理HTTP请求。 服务层(Service)处理业务逻辑。 数据访问对象(DAO)与MySQL数据库交互。 Spring Security用于权限控制。 前端&…

最短路径分析

路径分析参考地址 路径分析参考地址2 路径分析参考地址3 1 绘制线,添加snap+拓扑检查 2 融合线–矢量叠加-用线分割 3 打开pgadmin4 - 创建数据–query tool 4 postgis链接postgres,密码000000 add files导入数据后,geom改为the_geom, srd o改为 4326 options ,勾选 点击…

【软考高级信息系统项目管理师--第二十章:高级项目管理】

🚀 作者 :“码上有前” 🚀 文章简介 :软考高级–信息系统项目管理师 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 第二十章:高级项目管理 项目集管理项目组合管理组织级项目管理OPM&…

Docker原理及概念相关

Docker最核心的组件 image:镜像,构建容器,也可以通过Dockerfile文本描述镜像的内容。 (我们将应用程序运行所需的环境,打包为镜像文件) Container:容器 (你的应用程序,就跑在容器中 ) 镜像仓库(dockerhub)(…