Чистая функция - это функция, которая не имеет побочных эффектов и всегда возвращает одинаковый результат для одинаковых входных данных.
Чистые функции используются для описания reducer’ов - функций, которые принимают текущее состояние приложения и action, и возвращают новое состояние.
Reducer
должен быть чистой функцией, потому что он должен предсказуемо и безопасно обновлять состояние приложения. Если reducer имеет побочные эффекты, например, изменяет глобальные переменные или вызывает асинхронные операции, то это может привести к неожиданному поведению и сложностям в отладке.
Пример чистой функции, которая возвращает новое состояние в зависимости от переданного действия:
function counterReducer(state = 0, action) {
switch (action.type) {
case "INCREMENT":
return state + 1
case "DECREMENT":
return state - 1
default:
return state
}
}