>[danger]Redux讲一下干嘛的? Redux 是一种状态管理库,它可以用于 JavaScript 应用程序中的状态管理。Redux 的内部实现主要包括三个部分: 1. **State:** Redux 中的状态存储在一个单一的对象中,即 `store.getState()` 返回的对象。这个对象是不可变的,因此每次更新状态时都会创建新的状态对象。 2. **Action:** Action 是与状态交互的唯一途径。它们是描述性的对象,用于表示发生了什么事件或操作。每个 action 都必须有一个 `type` 字段,用于指定该 action 的类型。除了 `type` 字段外,action 还可以携带其他任意数据。 3. **Reducer:** Redux 状态的更改由 reducer 函数处理,reducer 函数接受两个参数:旧状态和一个 action,并返回一个新状态。Reducer 函数必须是纯函数,即不会修改其输入参数,并且具有相同的输出,给定相同的输入。 在 Redux 的内部实现中,通过将 action 派发到 reducer 函数来更改状态,进而在应用程序中实现状态管理。在单向数据流的架构中,整个应用程序的状态是由一个单一的 store 维护,并且状态的更新是通过 dispatch 一个 action 触发的。然后,由 reducer 函数根据传入的 action 和当前状态计算出新的状态,并返回新的状态对象。