随着应用程序的规模和范围的增长,管理共享数据变得很困难。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”*/

 

。。。

原文地址:http://www.cnblogs.com/168-h/p/16826138.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性