简述reducer是纯函数吗?说明其原因

是的,reducer在Redux中是一个纯函数。这意味着给定相同的输入,它总是返回同样的输出,而且没有副作用。这是因为它的主要工作是根据当前的应用状态和要处理的动作,返回一个新的应用状态。

这是一个简单的reducer函数示例:

function counter(state = 0, action) {
  switch (action.type) {
    case 'INCREMENT':
      return state + 1;
    case 'DECREMENT':
      return state - 1;
    default:
      return state;
  }
}

在这个例子中,如果我们传入当前状态(state)和一个动作(action),这个函数会返回一个新的状态。例如,如果我们的状态是3并且我们传入一个’INCREMENT’动作,那么它将返回4。这个函数不会修改传入的状态或动作,也不会执行任何其他的副作用(如网络请求,数据库操作等)。这就是为什么我们说它是一个”纯函数”。

发表评论

后才能评论