Що таке useReducer в React?
useReducer — це React хук, який дозволяє керувати станом компонент за допомогою reducer — функції, подібної до reducer з Redux.
Це особливо корисно, коли:
- стан є складним (об'єкт, масив),
- потрібно багато умов/дій для зміни стану,
- або коли потрібне передбачуване оновлення з чіткою логікою.
Синтаксис
jsx
const [state, dispatch] = useReducer(reducer, initialState);reducer— функція, яка приймаєstateтаaction, і повертає новий стан.initialState— початковий стан.state— поточний стан.dispatch(action)— спосіб викликати оновлення стану.
Простий приклад
jsx
import { useReducer } from "react";
const initialState = { count: 0 };
function reducer(state, action) {
switch (action.type) {
case "increment":
return { count: state.count + 1 };
case "decrement":
return { count: state.count - 1 };
default:
return state;
}
}
function Counter() {
const [state, dispatch] = useReducer(reducer, initialState);
return (
<div>
<p>Count: {state.count}</p>
<button onClick={() => dispatch({ type: "decrement" })}>-</button>
<button onClick={() => dispatch({ type: "increment" })}>+</button>
</div>
);
}Як працює Reducer?
Reducer — це чиста функція, яка не має побічних ефектів і завжди повертає новий стан на основі поточного стану та дії.
javascript
(state, action) => newStateПеревага useReducer:
Хук useReducer допомагає організувати бізнес-логіку окремо від компонентів, роблячи їх чистішими та легшими для тестування.
Висновок
useReducerє альтернативоюuseState, особливо корисною для складної логіки стану.- Дозволяє централізоване управління станом.
- Робить компонент більш передбачуваним і тестованим.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.