最佳答案
在学习 Redux
的过程中,我偶然发现了 Reducers
:
Reduce 是一个纯函数,它接受前一个状态和一个操作,并返回下一个状态。= > newState.它之所以被称为 reduce,是因为它是传递给 Array.Prototype.reduce (reduce,?)的函数类型?InitialValue).
MDN 将 reduce
方法描述为:
Reduce ()方法对累加器和数组的每个值(从左到右)应用一个函数来将其减少为单个值。
我还是不明白为什么 Redux 定义的减速器,因为它是没有意义的。其次,MDN 的描述似乎也不正确。reduce
方法并不总是用于减少到单个值。它可以用来代替 map
和 filter
,实际上当用来代替链接时速度更快。
MDN 描述不正确吗?
回到 Redux 关于减速器的定义,它说:
它之所以被称为 reduce,是因为它是要传递给 Array.Prototype.reduce (reduce,? initialValue)的函数类型
在我的印象中,Redux 中的一个 reducer 负责修改状态:
const count = function(state, action) {
if(action.type == 'INCREMENT') {
return state + 1;
} else if(action.type == 'DECREMENT') {
return state - 1;
} else {
return state;
}
}
我不明白这个函数是如何传递给 reduce
的。如何将该数据减少到单个值?如果这是一个传递给 reduce
的函数,那么 state
将是回调函数,action
将是初始值。
谢谢你的解释,这很难概念化。