Redux

什么是Redux

Redux作为一个React的组件,Redux 是JavaScript状态容器,提供可预测化的状态管理。Redux在React中主要负责组件间数据传递,是一个数据流管理工具。

Redux作者Dan有一句名言

一个 React 的 props 还用不好的开发者,是不应该去学 Redux

Redux 的工作原理

Redux 是 Facebook 的 Flux 架构的一种简化实现。(Redux 既是一个表示 “已返回” 的英文单词,也是 reducer + flux 的混合词。)Flux 在本质上采用了模型-视图-控制器 (MVC) 的结构,但引入了很高的复杂性。Redux 从 Elm 借用了缩减程序 (reducer) 的概念来降低了这一复杂性,Elm 是一个基于不可变数据结构和纯函数的强大的反应式函数编程语言。纯函数是没有副作用的函数,Redux 缩减程序是计算应用程序状态的纯函数。

Redux 有 3 条原则:

  • 应用中所有的state都以一个对象树的形式储存在一个单一的store中。
  • 惟一改变state的办法是触发action,一个描述发生什么的对象。
  • 为了描述action如何改变state树,你需要编写reducers

Redux 是数据流管理工具。使用 Redux 的最重要的一句话:

一切数据都要保存的 Store 之中,组件自己不保留自己的 state 数据

后续我们会学的一切的技巧基本服务于一个关系:组件和 Store 的关系

参考