useMemo
Memoiza o RESULTADO de uma computação. Recomputa apenas quando as deps mudam.
Guarda o valor entre renders. React compara deps com Object.is. Se iguais, retorna valor cacheado. Custo: comparação de deps a cada render.
Computações genuinamente custosas (sort/filter de listas grandes, cálculos matemáticos pesados). Criar objeto/array estável para passar a componente memoizado ou usar como dep de outro hook.
Valores primitivos (string, number, boolean). Computações simples/rápidas. Objetos que mudam a cada render de qualquer forma.
Hook básico para estado local do componente.
Roda side effects após o React commitar mudanças no DOM.
Como useEffect, mas executa síncronamente ANTES do browser pintar.
Memoiza uma FUNÇÃO. Mantém a mesma referência entre renders enquanto deps não mudam.
Cria objeto { current } mutável que persiste entre renders sem causar re-render quando alterado.
Alternativa ao useState para estado complexo com múltiplas transições.
Lê o valor do Context Provider mais próximo na árvore. Re-renderiza quando value muda.