Redux Store 是 Redux 應用程序中的核心概念之一。它是存儲應用程序狀態的容器,包含了應用程序中的所有狀態數據。
Redux Store 是一個普通的 JavaScript 對象,具有以下幾個主要特點:
1. 存儲狀態:Redux Store 保存整個應用程序的狀態,以一個單一的狀態樹的形式存儲。這個狀態樹通常是一個由多個 Reducer 組合而成的對象,每個 Reducer 負責管理狀態樹的一個分支。
2. 獲取狀態:通過調用 Redux Store 的 `getState` 方法,可以獲取當前的狀態樹對象。
3. 分發 Action:通過調用 Redux Store 的 `dispatch` 方法,可以派發(dispatch)一個 Action,從而觸發狀態的更新。當 Action 被派發時,Redux Store 會將 Action 傳遞給 Reducer 處理,并根據 Reducer 的邏輯來更新狀態。
4. 注冊監聽器:可以通過 Redux Store 的 `subscribe` 方法注冊監聽器,用于在狀態變化時執行回調函數。這樣可以實現對狀態變化的監聽和響應。
5. 應用中間件:Redux Store 允許使用中間件來擴展和定制 Redux 的行為。中間件可以對派發的 Action 進行攔截、處理副作用、異步操作等。
Redux Store 的創建是通過 Redux 的 `createStore` 函數來完成的。`createStore` 函數接收一個 Reducer 作為參數,并返回一個 Redux Store 對象。可以將多個 Reducer 組合成一個根 Reducer,并傳遞給 `createStore` 函數。
以下是一個創建 Redux Store 的示例代碼:
import { createStore } from 'redux';
import rootReducer from './reducers'; // 導入根 Reducer
// 創建 Redux Store,傳入根 Reducer
const store = createStore(rootReducer);
通過 Redux Store,可以統一管理應用程序的狀態,實現狀態的變化和狀態數據的共享。通過派發 Action,觸發狀態的更新,再通過訂閱和獲取狀態,可以在應用程序中獲取最新的狀態數據,并作出相應的響應和處理。