Memoization caches results to avoid recomputation.
React.memo: Prevent re-renders if props unchanged.
const Item = memo(({ data }) => <div>{data.name}</div>);
useMemo: Cache computed values.
const sorted = useMemo(() => items.sort(...), [items]);
useCallback: Cache function references.
const handleClick = useCallback(() => {...}, [deps]);
Don't overuse: Memoization has overhead. Only use for expensive operations or stable references.