React.memo Memoização de Componente
Última atualização: 2026-11-03
React.memo Memoização de Componente
Envolver um componente em React.memo permite que ele pule uma re-renderização quando suas props permanecem iguais em uma comparação rasa, reutilizando a saída anterior como está. Serve a componentes filhos caros de renderizar e que recebem props estáveis, e o benefício é maior quando o pai se atualiza com frequência, por exemplo ao digitar ou mover o mouse. Como a comparação é rasa, um objeto ou função novo nas props derrota o cache, então memo geralmente precisa ser combinado com useMemo ou useCallback.
| Grupo | Efeitos e Desempenho |
|---|---|
| Tipo | API |
| Desde | React 16.6 |
ℹ️ 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
const MemoList = memo(function List({ items, onSelect }) {
return items.map(it => <Row key={it.id} item={it} onSelect={onSelect} />)
})
// equal props after a shallow comparison mean the render is skipped
// the second argument can customize the comparison: memo(Cmp, (prev, next) => equal)
⚙️ Parâmetros
| Component | O componente a envolver, geralmente um componente de apresentação caro de renderizar. |
|---|---|
| areEqual (optional) | Uma função de comparação personalizada (prevProps, nextProps) => boolean; retornar true significa que as props são iguais e a renderização é pulada. |
Retorna:Retorna uma cópia memoizada do componente, usada exatamente como a original.
▶ Exemplo
O exemplo roda direto: renderiza automaticamente ao expandir e edições valem na hora.
Saída:
Clicar no botão repetidamente só atualiza o texto do contador e o console para de imprimir "The list rendered" — a referência de items nunca muda, então memo faz toda a lista pular a re-renderização.