Performance: Callback functions for state updates
MEDIUM IMPACT
This affects how React batches and schedules state updates, impacting interaction responsiveness and rendering efficiency.
const [count, setCount] = useState(0); // Good: use callback to get latest state function increment() { setCount(prevCount => prevCount + 1); }
const [count, setCount] = useState(0); // Bad: directly using state variable in setState function increment() { setCount(count + 1); }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Direct state update (setCount(count + 1)) | Multiple updates may cause repeated DOM changes | Multiple reflows if updates trigger layout changes | Higher paint cost due to extra renders | [X] Bad |
| Callback state update (setCount(prev => prev + 1)) | Batched updates reduce DOM changes | Single reflow for batched updates | Lower paint cost with fewer renders | [OK] Good |