Skip to content

Redux 核心概念

什么是 Redux

Redux 是一个 JavaScript 状态管理库,它可以帮助你管理整个应用的状态。Redux 是一个单向数据流的架构,它的核心概念是:store、action、reducer。

Redux 核心概念

Store

Store 是一个对象,用来保存应用的 State。Redux 应用只有一个单一的 Store。

ts
import { legacy_createStore as createStore } from 'redux'
import counterReducer from './reducer';

export const store = createStore(counterReducer);

Reducer

Reducer 是一个纯函数,用来根据 Action 来更新 State。

Reducer 接收两个参数:当前 State 和 Action,并返回一个新的 State。

ts
export default function counterReducer(
    state = { value: 0 },
    action: { type: "increment" | "decrement" }
) {
    switch (action.type) {
        case "increment":
            return { value: state.value + 1 };
        case "decrement":
            return { value: state.value - 1 };
        default:
            return state;
    }
}

Action

Action 是一个普通的 JavaScript 对象,用来描述发生了什么事情。

Action 必须包含一个 type 属性,用来描述 Action 的类型。

ts
// run with: ts-node src/redux-demo/index.ts

import { store } from "./store";

store.subscribe(() => {
    console.log(store.getState());
});

store.dispatch({ type: "increment" });

store.dispatch({ type: "decrement" });