redux核心概念和数据流 – Redux教程

上一章Redux教程请查看:redux介绍和安装
【redux核心概念和数据流 – Redux教程】本章我们来讨论redux的核心概念,以及redux的数据流。
Redux核心概念让我们假设应用程序的状态是由一个名为initialState的普通对象描述的,如下所示:

const initialState = { isLoading: false, items: [], hasError: false };

应用程序中的每段代码都不能改变这种状态。要更改状态,你需要调度一个动作。
什么是动作?
操作是一个普通对象,它用type属性描述引起更改的意图。它必须具有type属性,该属性指示正在执行的操作的类型。动作的命令是这样的
return { type: 'ITEMS_REQUEST', //动作类型 isLoading: true //负载信息 }

动作和状态由一个名为reduce的函数连接在一起。发送一个动作的目的是引起变化。此更改由reducer执行,reducer是改变Redux状态的唯一方法,使其更加可预测、集中和可调试,处理“ITEMS_REQUEST”操作的reducer函数如下所示
const reducer = (state = initialState, action) => { //es6箭头函数 switch (action.type) { case 'ITEMS_REQUEST': return Object.assign({}, state, { isLoading: action.isLoading }) default: return state; } }

Redux只有一个存储,存储应用程序状态。如果希望根据数据处理逻辑分割代码,应该开始分割reducer而不是Redux中的存储。
我们将在本教程的后面讨论如何分割reducer并将其与存储组合。
Redux组件如下
redux核心概念和数据流 – Redux教程

文章图片
Redux数据流Redux遵循单向数据流,这意味着你的应用程序数据将遵循单向绑定数据流,随着应用程序的增长和变得复杂,如果不能控制应用程序的状态,就很难重现问题并添加新特性。
Redux通过强制限制状态更新的方式和时间来降低代码的复杂性。这样,管理更新后的状态就很容易了,我们已经知道了Redux的三个原则。下图将帮助你更好地理解Redux数据流
redux核心概念和数据流 – Redux教程

文章图片
  • 当用户与应用程序交互时,将分配操作。
  • 使用当前状态和分派的操作调用根减速函数,根reducer可以将任务分配给更小的reducer函数,最终返回一个新的状态。
  • 存储通过执行它们的回调函数来通知视图。
  • 视图可以检索更新后的状态并重新呈现。

    推荐阅读