Why is useMemo preferred over useEffect + state for expensive calculations?
useMemo runs calculations asynchronously in the background
useMemo avoids extra render cycles caused by setting derived state
useMemo automatically persists values across page reloads
useMemo replaces dependency arrays entirely