首页 > 其他分享 >Redux相关

Redux相关

时间:2022-10-25 21:44:47浏览次数:44  
标签:应用程序 state action 相关 Redux type store

随着应用程序的规模和范围的增长,管理共享数据变得很困难。Redux被定义为“JavaScript应用程序的可预测state的容器”,有助于确保应用程序可预测地工作,更易于测试。接下来我们一起看看,Redux存储、操作、缩减器、中间件管理整个应用程序数据。

Redux是一个状态管理框架,可以与许多不同的web技术一起使用,包括React。在Redux中,只有一个状态对象负责应用程序的整个state。这意味着,如果有一个包含10个组件的React应用程序,并且每个组件都有自己的本地state,则应用程序的整个state将由Redux存储中的单个状态对象定义。当涉及到应用程序state时,Redux存储(Redux store)是唯一的真值来源。这也意味着,任何时候我们的应用程序的任何部分想要更新state,它都必须通过Redux store进行更新。单向数据流使我们更容易在应用程序中跟踪状态管理。

Redux store是一个保存和管理应用程序state的对象。Redux对象上有一个名为createStore()的方法,用于创建Redux store;此方法将reducer函数作为必需参数。声明一个“store”变量并将其赋值给createStore()方法,将reducer作为参数传入:

const reducer = (state = 5) => {
  return state;
}
let store= Redux.createStore(reducer);

Redux store对象提供了几种方法,允许我们与它进行交互。如,可以使用getState()方法检索Redux store对象中保存的当前state。上面的例子可以更简洁地重写:

const store = Redux.createStore(
  (state = 5) => state
);
/*使用store.getState()从store中检索state,并将其分配给一个新变量currentState*/
let currentState=store.getState();

由于Redux是一个状态管理框架,更新state是其核心任务之一。在Redux中,所有state更新都由dispatching  action触发。一个动作(action )只是一个JavaScript对象,它包含有关已发生的动作事件的信息。Redux store接收这些动作对象,然后相应地更新其state。有时,Redux动作也会携带一些数据。例如,用户登录后,该动作会携带用户名。虽然数据是可选的,但动作必须带有“type”属性,该属性指定发生的动作的“type”。将Redux动作视为通信员,通信员将应用程序中发生的事件信息传递到Redux store,然后,store根据发生的动作进行更新state的业务。

编写Redux action就像定义一个带有type属性的对象一样简单:

// 定义一个action:
let action={
  type:'LOGIN'
}
/*声明一个对象“action”,并将属性“type”设置为字符串“LOGIN”*/

 

。。。

标签:应用程序,state,action,相关,Redux,type,store
From: https://www.cnblogs.com/168-h/p/16826138.html

相关文章

  • python集合的相关操作
    set1={"1","2","3","4"}set2={"a","b","c","d,"1","2"}一、intersection()交集 res=set1.intersection(set2)print(res)#简写&res=set1&set2prin......
  • python字典相关操作方法
    字典相关函数一、增dic={}dic["ww"]="一表人才,除了帅气的皮囊之外,一无所有"dic['ywz']="渣男"dic["hxl"]="抠脚老汉"print(dic)#fromkeys()使用一组键......
  • 欧拉定理相关性质及证明
    欧拉定理:当与互质时,有通项公式及其证明:如果,为质数,则证明:当一个数不包含质因子时就能与互质,小于等于的数中包含质因子p的只有个,即,把他们去除即可由唯一分解定理可知,这就是......
  • Mysql运维-数据库及表相关操作
    微信公众号:IT邦德一.创建和删除数据库1、MySQL8.0之前默认的数据库字符集是latin1,从8.0开始,默认就是utf8mb4字符集。2、utf8mb4可以存储表情等特殊字符,MySQL......
  • zabbix-proxy与zabbix-server的版本不一致,导致相关问题.
    知识点:zabbix_server必须与zabbix_proxy版本一致,而zabbix_agent向下兼容,agent不能比server/proxy版本高。查看zabbix-proxy的日志,如下:1731:20201027:154049.957 receiv......
  • zabbix_get获取的值为0或为空,与单独执行脚本不一致相关问题。
    排查思路:1、zabbixagent的配置文件2、脚本里的变量等是否写绝对路径,脚本执行命令是否有权限。自定义脚本:UserParameter=mysql.ping,mysqladmin(要使用绝对路径,路径按......
  • 树关于度的相关计算
    一、树的常考性质考点一:结点数=总度数+1(总度数/树的度:总分支数结点的度:有几个孩子/分支)考点二:度为m的树和m叉度的关系:度为m的树m叉树至少有一个结点度=m允许......
  • 多个数据库表建立外键约束的相关理解
    一、知识准备所谓“外键约束”,就是一个表中的FOREIGNKEY与另一个表中的UNIQUEKEY(唯一约束的建,一般为主键)通俗一些的话,就是将单独的没有啥关系的表利用一些共同点结合......
  • Lang.NEXT 2012相关Session
    2012年4.2-4日的Lang.NEXT2012是.NET(CLR,DLR以及其他平台)上语言及相关工具的设计开发者的盛会。会议的相关Session已经放出,绝对值得好好的学习,地址......
  • 转载——防止基础表数据变动,导致相关的历史记录数据产生变动的解决方案
    转载——防止基础表数据变动,导致相关的历史记录数据产生变动的解决方案原文链接:http://www.cnblogs.com/surfsky/archive/2009/11/06/1597242.html1.首先先定义两个概念:......