Skip to content

Reducer

什么是 Reducer?

Reducer 是 Redux 中用于管理状态的函数。它是一个纯函数,接收先前的状态和动作,返回新的状态。 Reducer 必须是纯函数,这意味着它必须是无副作用的,也就是说,它必须返回一个新的对象,而不是修改传入的参数。这就保证了 Redux 的状态是只读的,这也是 Redux 架构的核心。

如何使用 Reducer?

Reducer 是一个函数,它接收先前的状态和动作,返回新的状态。Reducer 必须是纯函数,这意味着它必须是无副作用的,也就是说,它必须返回一个新的对象,而不是修改传入的参数。 Reducer 可以通过 Redux 提供的 createStore 方法来创建,如下所示:

javascript
import { createStore } from'redux';

const initialState = {
  counter: 0
};

  function counterReducer(state = initialState, action) {
  switch (action.type) {    
    case 'INCREMENT':
      return {       // 返回一个新的对象
        counter: state.counter + 1
      };
    case 'DECREMENT':
      return {
        counter: state.counter - 1
      };
    default:
      return state;
  }
}

const store = createStore(counterReducer);

在上面的代码中,我们定义了一个名为 counterReducer 的 Reducer 函数,它接收先前的状态 state 和动作 action,并返回新的状态。 Reducer 函数通过 switch 语句来处理不同的动作,并返回新的状态。在这个例子中,我们定义了两个动作 INCREMENTDECREMENT,分别用来增加和减少计数器的值。 最后,我们通过 createStore 方法创建 Redux 存储,并传入 counterReducer 函数作为参数。

总结

Reducer 是 Redux 中用于管理状态的函数。它是一个纯函数,接收先前的状态和动作,返回新的状态。Reducer 必须是纯函数,这意味着它必须是无副作用的,也就是说,它必须返回一个新的对象,而不是修改传入的参数。这就保证了 Redux 的状态是只读的,这也是 Redux 架构的核心。