Во время обучения Redux
я столкнулся с Reducers
. В документации указано:
Редуктор - это чистая функция, которая принимает предыдущее состояние и действие и возвращает следующее состояние. (previousState, action) = > newState. Он называется редуктором, потому что это тип функции, которую вы передали бы Array.prototype.reduce(редуктор,? InitialValue).
MDN описывает метод reduce
как:
Метод reduce() применяет функцию к аккумулятору и каждому значению массива (слева направо), чтобы уменьшить его до одного значения.
Я все еще смущен тем, почему определение Redux редуктора не имеет смысла. Во-вторых, описание MDN тоже неверно. Метод reduce
не всегда используется для уменьшения до одного значения. Его можно использовать вместо map
и filter
и на самом деле быстрее, когда используется вместо цепочки.
Неверное описание MDN?
Возвращаясь к определению Redux редуктора, он утверждает:
Он называется редуктором, потому что это тип функции, которую вы передали бы в Array.prototype.reduce(редуктор,? initialValue)
У меня создается впечатление, что редуктор Redux несет ответственность за изменение состояния. Пример редуктора:
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
будет начальным значением.
Спасибо за любые ясные объяснения. Это сложно осмыслить.