📖
Hook

useLayoutEffect

Como useEffect, mas executa síncronamente ANTES do browser pintar.

📚 O que é

Timing: render → commit → useLayoutEffect → PAINT → useEffect. Por ser síncrono, bloqueia o paint até concluir. Tem acesso ao DOM já atualizado.

✅ Quando usar

Leituras de layout que precisam ser antes do paint: posicionar tooltips/dropdowns, scroll restoration, medir elementos, ajustar posição sem flash.

🚫 Quando NÃO usar

Side effects que não precisam do DOM. SSR (não há DOM). Operações lentas (bloqueia o paint). Para 90% dos casos, useEffect é suficiente.

👍 Prós
Evita flash visual
DOM já atualizado
Sincroniza antes de pintar
👎 Contras
Bloqueia paint se pesado
Não funciona em SSR (warning)
Pode travar UI se mal usado
🔗 Termos relacionados