Redux设计及相关

基本上,一说到react, 正常会有一个词随之而出现,那就是Redux. 它们是一对好基友。
这篇文章主要是聊聊下面一些话题

  • 什么是Redux?
  • 为什么是Redux?
  • React和Redux的关系是什么?
  • Redux的未来

什么是Redux?


Redux是一个存储数据的地方,这个地方你可以叫它为Store,或者JS对象,或者前端数据库,这些都是名,实际的内涵是存储数据.
既然是存储数据的地方, 那么接下来有几个问题就很自然了

  • 数据有哪些实体?
  • 数据的实体有哪些行为? 增,删,改,查。
  • 有哪些方式能获得这些数据?
  • 如何避免不同的实体有相同的冗余数据? 对于以上问题,相信部分人可能会不耐烦了,不就是前端展示么?怎么会牵扯这么多东西.
    这是因为现在的前端开发有一些不需要讨论的大前提:单页.
    为什么需要单页呢?-给用户丝滑般的体验啊.

    大概的关系如下:单页 -> 需要状态 -> 需要存储状态的地方 -> 维护状态

Redux的核心概念是什么?

  • store
  • action
  • reducer

Redux的核心原则是什么?

  • 单一数据源
  • 数据是只读的
  • 单向数据流

为什么是Redux?

因为需要状态管理。可以有如下三个选项

  • Flux
  • Redux
  • Mbox

Redux是Flux的升级版,Mbox生态圈相对小一些。 所以一般情况下会选择Reduxs

React和Redux的关系是什么?


前面提到了, React和Redux还是一对好基友。但React是否需要Redux?在下列情况下,是不需要Redux的

  • 项目比较简单,所有的状态保存在React组件里
  • 每次请求的数据直接从后台api拿, api的性能很高,没有延迟
  • 用户不需要好的的UI体验

但仔细审核这三点,在大多数情况下,是不成立的.
所以在大多数情况,我们需要状态管理.

Redux的未来?

Redux的方向大概有两个

  • 如何更好的规范数据实体之间的关系
  • 如何提供api更好的操作数据