React — Interview Questions & Mental Models
useState & batching
- Updates may be batched (especially in event handlers) so multiple setState calls → one re-render.
- Functional updates: setCount(c => c + 1) when next state depends on previous — avoids stale state in async callbacks.
- Initial state: useState(expensive()) runs every render — use useState(() => expensive()) for lazy init.