Чистая функция - это функция, которая не имеет побочных эффектов и всегда возвращает одинаковый результат для одинаковых входных данных.

Чистые функции используются для описания 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
  }
}

Назад