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更好的操作数据