Redux是一个用于管理和应用JavaScript应用状态的预测式状态容器。在Redux中,应用的状态被存储在一个名为store的对象中,这个对象包含了所有的状态。此外,Redux还提供了一些其他的核心组件来帮助我们更高效地管理状态。
Store: Store 是 Redux 应用中最重要的一个组件,它将 state 树保存在单一的全局对象中。它负责以下职责:
- 允许外部通过
getState()
访问当前的应用的 state。 - 提供
dispatch(action)
方法来分发 action 更新 state。 - 通过
subscribe(listener)
注册监听器来接收 state 的更新。 - 通过
replaceReducer(nextReducer)
方法替换当前的 reducer。
- 允许外部通过
Actions: Action 是一个普通 JavaScript 对象,它描述了应用中发生的变化。Redux 应用中所有的状态改变都是由 dispatching action 触发的。Action 必须有一个 type 属性指明执行的 action 类型。其它额外的属性可以自由地传入。
Reducers: Reducer 是一个纯函数,它描述了 state 如何响应不同 actions。Reducer 只描述改变的内容,而不处理用户交互。它接受两个参数:当前的 state 和一个 action,然后返回新的 state。
Dispatcher: Dispatcher 是 Redux 库的一部分,它是一个将 action 分发给对应的 reducer 的函数。你可以调用 store.dispatch() 来分发 action。
View: View 是你的应用的用户界面。在 Redux 应用中,View 通常是 React 或其他 UI 库的组件。这些组件订阅了 Redux store,当 state 发生改变时,它们会重新渲染。
Provider: Provider 是一个特殊的 React 组件,它使 store 可用到应用的其他部分。Provider 包裹了你的顶级组件,并接收 store 作为 prop。
Connect: Connect 是一个 React Redux 库中的函数,它负责连接 React 组件和 Redux store。Connect 将 store [state] 映射到 props,并且确保你的组件能够订阅 store 的更新。
Middleware: Middleware 是 Redux 应用中的中间件,位于 dispatch 和 reducers 之间。它的作用是在 action 到达 reducers 之前对 action 进行处理。常见的 middleware 包括 redux-thunk、redux-logger 和 redux-promise。
Store Enhancer: Store Enhancer 是一个更高级的 Redux 概念,它允许你在 store 创建过程中增强 store 的能力。例如,你可以使用 Store Enhancer 来添加中间件或合并多个 reducers。
Action Creators: Action Creators 是生成 action 的函数。它们帮助保持 action 创建的代码组织和重用。
总结:Redux 是一个强大的 JavaScript 应用状态管理库,它提供了一套核心组件来帮助你管理和维护应用的状态。了解这些组件的功能和作用可以帮助你更好地利用 Redux 来构建可预测的应用。