在 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 中的狀態管理和狀態變化。