- Redux 和 React 没有直接关系,它瞄准的目标是应用状态管理。
- 核心概念是 Map/Reduce 中的 Reduce。且
Reducer
的执行是同步,产生的State
是 Immutable 的。 - 改变
State
只能通过向 Reducer dispatch actions 来完成。 State
的不同字段,可以通过不同的Reducers
来分别维护。combineReducers
负责组合这些Reducers
,前提是每个Reducer
只能维护自己关心的字段。Action
对象只能是 Javascript Plain Object,但是通过在store
上装载middleware
,则可以任意定义action
对象的形式,反正会有特定的middleware
负责将此action
对象变为 Javascript Plain Object。可以以middleware
链条为集中点实现很多控制逻辑,例如 Log,Undo, ErrorHandler 等。- Redux 仅仅专注于应用状态的维护,
reducer
、dispatch/middleware
是两个常用扩展点、Higher-order Store 则仅针对需要扩展全部Store
功能时使用。 - react-redux 是 Redux 针对 React/React-Native 的 Binding,
connect/selector
是扩展点,负责将store
中的状态添加到 Reactcomponent
的props
中。 - Redux 借用了很多函数式编程的思想,了解函数式编程会利于理解其实现原理,虽然使用它不需要了解很多函数式编程的概念。和 Flux 相比,Redux 的概念更精简、约定更严格、状态更确定、而是扩展却更灵活。
时间: 2024-10-12 20:10:47