在 Redux 中,Action(動作)是一個普通的 JavaScript 對象,用于描述應(yīng)用中發(fā)生的事件。它是將數(shù)據(jù)從應(yīng)用傳遞到 Redux store 的唯一途徑。
Action 對象通常包含一個 `type` 屬性,用于指示要執(zhí)行的操作類型,以及可選的 `payload` 屬性,用于攜帶與操作相關(guān)的數(shù)據(jù)。例如:
const incrementCounter = {
type: 'INCREMENT_COUNTER',
};
const updateUser = {
type: 'UPDATE_USER',
payload: {
name: 'John',
age: 25,
},
};
上述代碼中,`incrementCounter` 是一個表示遞增計數(shù)器的 Action,它只包含一個 `type` 屬性。而 `updateUser` 是一個表示更新用戶信息的 Action,它包含一個 `type` 屬性和一個 `payload` 屬性,`payload` 中攜帶了要更新的用戶數(shù)據(jù)。
Action 可以被視為應(yīng)用中的事件,當某個操作發(fā)生時,通過創(chuàng)建一個對應(yīng)的 Action 對象,然后將該 Action 對象傳遞給 Redux 的 `dispatch` 函數(shù),來觸發(fā)對應(yīng)的狀態(tài)更新。Reducers 可以根據(jù) Action 的類型,從而對應(yīng)地更新狀態(tài)。
Action 的定義是純粹的,它只描述了發(fā)生了什么事件,并不關(guān)心如何處理這個事件。Reducers 負責處理 Action,并根據(jù) Action 的類型來更新狀態(tài)。通過使用 Action 和 Reducer 的組合,實現(xiàn)了 Redux 中的狀態(tài)管理和狀態(tài)變化。