对redux的理解

为什么使用redux?

由于react是单向数据源,数据只能一层一层往下传。假如开发过程中遇到多个组件共同使用的一个属性(比如在A组件进行修改,触发B组件页面渲染),为了让A、B组件都能使用这个属性,我们就必须把这个属性放在A、B组件公共的父组件里面,并且提供修改方法,再通过props把属性值和修改方法一级一级传递到A、B组件里面。假如A、B组件要往上找很多级才有公共的父组件,那么后期维护会非常麻烦,于是就有了redux。我们只需要把这个属性交给redux管理,让redux负责这个属性的查询、修改;并对外提供查询、修改的方法,那么我们只需要在使用的组件里面引入redux,通过redux提供的查询方法(getStore)获取这个属性值,通过redux提供的修改方法(dispatch发送一个action)去修改这个属性值,就可以减少一层一层传递的过程,达到同样的效果。

由于数据通过redux进行了集中管理,方便我们对数据进行溯源,更快的定位数据相关的问题,可以大大减少维护难度。

redux剖析:

Redux遵循以下三个基本原则:
1、整个应用只有唯一一个可信数据源,也就是只有一个 Store
2、Store里面的数据(state)只能通过触发 Action 来更改
3、State 的更改必须写成纯函数(什么是纯函数),也就是每次更改总是返回一个新的 State,在 Redux 里这种函数称为 Reducer

redux核心是一个Store对象,通过这个对象存储数据。Store通过createStore()创建,通过getStore()获取。Store对象包含所有数据。如果想得到某个时点的数据,就要对 Store 生成快照。这种时点的数据集合,就叫做 State,一个 State 对应一个 View。Store唯一的数据来源(或者数据更新)是发送一个action到Reducer里面,Reducer接受旧的state和action,Reducer会对他们进行合并得到一个全新的state并返回,通过这种方式更新store对象。

你可能感兴趣的:(对redux的理解)