redux是当下流行的web前端所使用的一个状态管理架构。它本身是一个独立的构造,没有与任何其它库的耦合。由于reactjs的流行, 它自然而然的成为了react状态管理的延伸架构。 本文不打算讨论redux的优点以及细节, 只是想从纯粹的设计角度去理解redux状态管理的模式。
概览
redux把状态管理抽象成3个要素, action, reducer, store。
action是状态变化的描述性数据结构, 即一个标签(type)来标识action的名字, 和相关的数据
{
type: "添加订单",
text: "Eat meal"
}
reducer是action的handler, 是一个函数来具体执行状态变化操作.
store是状态对象和reducer的管理器, 在使用redux的时候, 你不应该直接执行reducer, 这破坏了它的设计意图。你要把它放到store中, 通过store去执行(dispatch)状态变化操作, 你也要通过store来获取状态对象。
更具体的描述:
action, 描述发生了什么的对象, action是store的唯一信息来源, 通过store.dispatch(action)产生,
而dispatch就是去调用reducer更新状态, 在store内部, currentState维持应用程序的当前状态:currentState = currentReducer(currentState, action)
一个action的结构:
{ type: "ADD_TODO", text: "Eat meal" }
reducer, 完成acti