1) Use local state as much as possible.
2) Wrap expensive components with React.memo().
3) Use useCallback / useMemo only for stable references.
4) Virtualize long lists (React Window / Virtuoso).
5) Cache data with TanStack Query instead of manual fetches.