Reducer - инструмент для управления состоянием в React

Reducer - это функция, которая принимает предыдущее состояние (state) и действие (action), а затем возвращает новое состояние. Она является частью парадигмы управления состоянием, которая широко используется в различных фреймворках и библиотеках, таких как Redux в React и NGRX в Angular.

Пример кода на JavaScript, использующий Redux и редьюсер:

javascript
// определение начального состояния
const initialState = {
  counter: 0
};
// определение редьюсера
const counterReducer = (state = initialState, action) => {
  switch (action.type) {
    case 'INCREMENT':
      return { ...state, counter: state.counter + 1 };
    case 'DECREMENT':
      return { ...state, counter: state.counter - 1 };
    default:
      return state;
  }
};
// создание хранилища Redux
const store = Redux.createStore(counterReducer);
// диспетчеризация действий
store.dispatch({ type: 'INCREMENT' });
console.log(store.getState()); // { counter: 1 }
store.dispatch({ type: 'DECREMENT' });
console.log(store.getState()); // { counter: 0 }

В этом примере редьюсер `counterReducer` принимает состояние `state` и действие `action`. В зависимости от типа действия, он возвращает новое состояние путем изменения значения `counter` в объекте. Изменения состояния происходят с использованием распылений (`...state`), чтобы сохранить все остальные свойства состояния неизменными. При вызове диспетчера `dispatch` с определенным действием, таким как `INCREMENT` или `DECREMENT`, новое состояние доступно через вызов `getState` хранилища Redux.

Похожие вопросы на: "reducer "

Discover the Best Hidden Channels Online
Rebase Git: что это и как использовать в своей работе?
Добро пожаловать на Action c - ваш надежный партнер в мире экшена!
The At Sign (@): Its Meaning, History, and Importance in Modern Communication
Word Break CSS
<h1>Mounted Photography: Discover the Art of Visual Storytelling
Static Void: Unleashing the Power of Programming
Приведение типов Python
Throwable: игрушки для активного отдыха
CountDownLatch: управление параллельными потоками в Java