Master React Hooks including useState, useEffect, useContext, useReducer, and custom hooks with production-grade patterns
Master React Hooks patterns including built-in hooks (useState, useEffect, useContext, useReducer, useCallback, useMemo) and custom hook development for reusable logic.
const [state, setState] = useState(initialValue);
// Lazy initialization for expensive computations
const [state, setState] = useState(() => expensiveComputation());
// Functional updates when state depends on previous value
setState(prev => prev + 1);
useEffect(() => {
// Side effect code
const subscription = api.subscribe();
// Cleanup function
return () => {
subscription.unsubscribe();
};
}, [dependencies]); // Dependency array
const value = useContext(MyContext);
// Best practice: Create custom hook
function useMyContext() {
const context = useContext(MyContext);
if (!context) {
throw new Error('useMyContext must be within Provider');
}
return context;
}
const [state, dispatch] = useReducer(reducer, initialState);
function reducer(state, action) {
switch (action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
case 'DECREMENT':
return { count: state.count - 1 };
default:
return state;
}
}
const memoizedCallback = useCallback(
() => {
doSomething(a, b);
},
[a, b], // Dependencies
);
const memoizedValue = useMemo(
() => computeExpensiveValue(a, b),
[a, b]
);
const ref = useRef(initialValue);
// DOM access
const inputRef = useRef(null);
<input ref={inputRef} />
inputRef.current.focus();
// Mutable value that doesn't trigger re-render
const countRef = useRef(0);