在 Redux 中,Action(动作)是一个普通的 JavaScript 对象,用于描述应用中发生的事件。它是将数据从应用传递到 Redux store 的唯一途径。
Action 对象通常包含一个 `type` 属性,用于指示要执行的操作类型,以及可选的 `payload` 属性,用于携带与操作相关的数据。例如:
const incrementCounter = {
type: 'INCREMENT_COUNTER',
};
const updateUser = {
type: 'UPDATE_USER',
payload: {
name: 'John',
age: 25,
},
};
上述代码中,`incrementCounter` 是一个表示递增计数器的 Action,它只包含一个 `type` 属性。而 `updateUser` 是一个表示更新用户信息的 Action,它包含一个 `type` 属性和一个 `payload` 属性,`payload` 中携带了要更新的用户数据。
Action 可以被视为应用中的事件,当某个操作发生时,通过创建一个对应的 Action 对象,然后将该 Action 对象传递给 Redux 的 `dispatch` 函数,来触发对应的状态更新。Reducers 可以根据 Action 的类型,从而对应地更新状态。
Action 的定义是纯粹的,它只描述了发生了什么事件,并不关心如何处理这个事件。Reducers 负责处理 Action,并根据 Action 的类型来更新状态。通过使用 Action 和 Reducer 的组合,实现了 Redux 中的状态管理和状态变化。