Redux是一个状态管理的库,它提供可预测的状态管理。原来我们一个js文件只需要维护一个视图的情况下,我们使用原生的js就能搞定了。如果我们想提高一点效率,我们可以再加上一个jQuery,这个时候我们只要处理好逻辑,基本就可以了。但是当一个web应用更加复杂的时候,特别是当我们在开发一个复杂的单页应用的时候,我们需要管理各种复杂的状态,这些状态可能是数据的状态,比如说服务器返回的数据,或者是本地的数据,它也可能是UI的状态,比如说一个单选框是不是被勾选上了,或者是没被勾选,等等。在这个时候我们要管理这些不断变化的状态,就会变得非常的困难。Redux只着眼于状态的维护,它只管理数据,视图的变化等动作它不管,它只管数据。
redux是维护状态的,其实也就是维护数据的,它做的也就是给应用去提供数据,然后去更改数据,包括以什么样的方式去更改这些数据的问题。
redux工作流程
Redux有一个非常核心的东西叫做store,不管一个应用复杂的什么样的程度,这个应用只有唯一的一个store。这个应用任何一个地方需要数据都从store里面去拿到。只要调用store.getState()就可以拿到整个应用的数据。而当你要去更新数据的时候,也就是更新这个应用的state的时候,你不能直接去修改这个state,而应该发起一个action,当你发起一个action的时候,reducer就会去更改这个数据。怎么样去更改数据不是你要去关心的问题,而是reducer要去关心的问题,你只要发起action就好了,reducer会知道什么样的action,然后去更改什么样的数据。