📖
Performance
Debouncing
Atrasa execução de uma função até parar de ser chamada por N ms.
📚 O que é
A cada nova chamada, reinicia o timer. Só executa quando o usuário 'para' de agir. Ideal para search-as-you-type (só busca quando parou de digitar). Diferente de throttle (que limita a frequência).
✅ Quando usar
Search inputs. Autosave de formulários. Inputs que disparam API calls. Redimensionamento de janela para cálculos pesados.
🚫 Quando NÃO usar
Quando o usuário precisa de feedback imediato. Clicks de botão (use disabled state em vez de debounce). Quando throttle é mais apropriado.
👍 Prós
Reduz chamadas de API
Melhora UX (menos 'piscadas')
Simples de implementar
Melhora performance de rede
👎 Contras
Atrasa feedback
Pode sentir lento se delay muito alto
Precisa de cleanup para evitar memory leaks
🔗 Termos relacionados
Code Splitting
Performance
Dividir o bundle JS em chunks menores, carregados sob demanda.
Memoization
Performance
Cache de resultado para inputs iguais. Evita recomputação e re-renders desnecessários.
Virtual Scrolling
Performance
Renderiza apenas os itens visíveis. DOM permanece pequeno independente do total.