When Not to Memo Quando Não Memoizar
Última atualização: 2026-11-03
When Not to Memo Quando Não Memoizar
memo, useMemo e useCallback não são de graça: comparar e cachear custa algo e o código fica mais difícil de ler. A maioria dos componentes é barata de renderizar, então renderizá-los de novo é frequentemente mais rápido do que se lembrar de pular. Saber quando não memoizar importa mais do que polvilhar memo por toda parte. A regra prática é medir primeiro: faça o perfil da aplicação, encontre os componentes que realmente custam tempo e otimize apenas esses.
| Grupo | Efeitos e Desempenho |
|---|---|
| Tipo | Padrão |
ℹ️ Informação O editor transpila JSX para JavaScript e renderiza a UI real na sandbox; os componentes são montados automaticamente — sem render manual.
📝 Sintaxe
// cases that usually do not need memo:
// 1. the component renders fast enough (plain text, a few nodes)
// 2. the props change every time (object literals, inline functions)
// 3. the state lives in this component, so the parent always re-renders it
<MemoChild style={{ color: 'red' }} onClick={() => go()} />
// ↑ a new object and a new function on every render make memo pointless
Retorna:Sem valor de retorno; esta entrada descreve um padrão de codificação e não uma função.
▶ Exemplo
O exemplo roda direto: renderiza automaticamente ao expandir e edições valem na hora.
Saída:
Enquanto você digita, o Badge é pulado (o invólucro memo cumpre seu papel), mas clicar em +1 renderiza o Badge com certeza — count é uma de suas props. Não há ganho aqui, e remover o invólucro deixa o código mais simples.