Hook useReducer
w React jest alternatywą dla useState
, który pozwala na zarządzanie bardziej złożonym stanem w komponentach funkcyjnych. useReducer
jest często używany, gdy stan komponentu zależy od wielu akcji lub jest bardziej złożony.
Składnia useReducer
:
const [state, dispatch] = useReducer(reducer, initialState);
Przykład użycia useReducer
:
- Definiowanie reducer:
function reducer(state, action) { switch (action.type) { case 'increment': return { count: state.count + 1 }; case 'decrement': return { count: state.count - 1 }; default: throw new Error(); } }
- Użycie
useReducer
w komponencie:
import React, { useReducer } from 'react'; const initialState = { count: 0 }; function Counter() { const [state, dispatch] = useReducer(reducer, initialState); return ( <div> <p>Count: {state.count}</p> <button onClick={() => dispatch({ type: 'increment' })}>Increment</button> <button onClick={() => dispatch({ type: 'decrement' })}>Decrement</button> </div> ); }
Hook useReducer
jest przydatny, gdy potrzebujesz bardziej zaawansowanego zarządzania stanem, podobnie jak w przypadku Redux
, ale w ramach komponentów funkcyjnych React.