Вот мое понимание, в терминах redux редуктор - это функция, которая принимает два аргумента (состояние, действие).
1. state represents the current state of the application in store
2. action represents the action that triggered
Redux предполагает, что редукторы действительно принимает текущее состояние и не мутируют состояние, но возвращает новое состояние, в зависимости от типа действия. Если он придерживается и не мутирует состояние, тогда он является чистым редуктором.
/********************** Пример чистого редуктора ****************** ***********/
var initialState = {counter:0};
function counterReducer(state = initialState, action){
if (action.type === 'INCREMENT'){
// returns a new state incrementing a counter
return {counter:state.counter + 1};
}
else if (action.type === 'DECREMENT'){
// return a new state decrementing a counter
return {counter:state.counter - 1};
}
// returns the state as is
return state;
}
выше функция не имеет побочных эффектов, когда она вызывается с тем же набором аргументов она всегда возвращает тот же результат.
/********************* пример нечистого редуктора ******************* ********/
var initialState = {counter:0};
function counterReducer(state = initialState, action){
if (action.type === 'INCREMENT'){
// modifies state by mutating or incrementing the counter in state
state.counter++;
}
else if (action.type === 'DECREMENT'){
// modifies state by mutating or decrementing the counter in state
state.counter--;
}
// returns the state
return state;
}
Редуктор - это функция. конкретный вид, но только функция. то же самое. Роза с любым другим именем ... – dandavis
Редуктор - это функция, так что это просто более конкретное имя. –