--- title: Use Transitions for Non-Urgent Updates impact: MEDIUM impactDescription: maintains UI responsiveness tags: rerender, transitions, startTransition, performance --- ## Use Transitions for Non-Urgent Updates Mark frequent, non-urgent state updates as transitions to maintain UI responsiveness. **Incorrect (blocks UI on every scroll):** ```tsx function ScrollTracker() { const [scrollY, setScrollY] = useState(0) useEffect(() => { const handler = () => setScrollY(window.scrollY) window.addEventListener('scroll', handler, { passive: true }) return () => window.removeEventListener('scroll', handler) }, []) } ``` **Correct (non-blocking updates):** ```tsx import { startTransition } from 'react' function ScrollTracker() { const [scrollY, setScrollY] = useState(0) useEffect(() => { const handler = () => { startTransition(() => setScrollY(window.scrollY)) } window.addEventListener('scroll', handler, { passive: true }) return () => window.removeEventListener('scroll', handler) }, []) } ```