Redux初见

在使用React/React Native的时候,会深感state概念的重要性和复杂性。Redux扮演了state管理库的角色。

要理解Redux的思想,首先要理解state。在React中,把所有的component看做有穷状态机,component由一个个的state来支撑,有了不同的state,即可重新渲染界面。

而Redux本身,又是建立在Flux架构思想上的,即Facebook官方针对React应用建议的架构。我们可以理解为面向用户的交互界面是起点,应用状态变化为终点,在这一个过程中,我们需要处理数据走向、改变用户界面等等。所以起点用户的交互界面,触发了一个action,大中枢派发中心收到action,处理action,改变state。

有人总结起Redux的三个要点,那么就是:

  1. 应用中所有state以对象树形式存储在一个store中
  2. 唯一改变state的方法是action
  3. 通过action触发reducers来改变state树

由此可以总结归纳出Redux的三个原则:

  1. 单一数据源
  2. state只读
  3. 纯函数执行修改

store

store即state的容器,在Redux中,只有一个store。

action

action是一个对象,并且约定好type字段为字符串,用于表示action类型。举个栗子,添加用户的action可以为:

1
2
3
4
5
6
7
8
{
type: 'ADD_USER',
data: {
name: 'username',
email: 'username@domain.com',
psw: '123456'
}
}

action本身并不操纵state,但action描述出了操纵state的方式和行为。

reducer

action通过reducer来完成state的改变,reducer在store中来分发处理action。