Todo projeto React tem aquele momento em que alguém olha para um componente e pensa: “será que isso precisa de um useMemo?”.
Dois minutos depois, tem useMemo, useCallback, React.memo e uma sensação curiosa de que a aplicação ficou mais profissional — mesmo sem ninguém ter medido absolutamente nada.
A boa notícia é que o próprio React está tentando diminuir essa coreografia manual.
O que é o React Compiler?
O React Compiler é uma ferramenta de build que analisa o código da aplicação e aplica otimizações automaticamente. Segundo a documentação oficial do React, ele consegue lidar com memoização por você, reduzindo a necessidade de usar manualmente useMemo, useCallback e React.memo.
Isso é importante porque memoização manual virou quase um tique nervoso em React. Em teoria, ela evita cálculos desnecessários ou recriação de funções. Na prática, muitas vezes ela adiciona complexidade sem ganho real.
O problema do uso automático de useMemo
Um exemplo comum é algo assim:
const filteredItems = useMemo(() => {
return items.filter((item) => item.active);
}, [items]);
Esse código pode fazer sentido se items for grande, se o filtro for caro ou se o resultado estiver causando renderizações desnecessárias em componentes filhos.
Mas, em muitos casos, especialmente em componentes simples, isso só deixa o código mais difícil de ler. Você adiciona uma camada extra de intenção para resolver um problema que talvez nem exista.
O problema não é usar
useMemo. O problema é usaruseMemocomo superstição.
Com o React Compiler, o código tende a ficar mais natural
Com o React Compiler, a ideia é permitir que você escreva um código mais próximo da intenção original:
const filteredItems = items.filter((item) => item.active);
Em vez de espalhar memoização manual por reflexo, o compilador passa a cuidar de parte desse trabalho. Isso pode deixar os componentes mais limpos e tornar o código mais fácil de revisar.
Mas calma: isso não significa sair apagando todos os hooks do projeto hoje.
O useMemo acabou?
Não. O useMemo e o useCallback continuam existindo e ainda têm casos de uso legítimos.
A própria documentação do React recomenda que, em código novo, os desenvolvedores confiem no compilador para memoização e usem hooks manuais quando precisarem de controle mais preciso. Para código existente, a recomendação é testar com cuidado antes de remover otimizações já aplicadas.
Ou seja: o React Compiler não é uma autorização para desligar o cérebro. É um convite para parar de otimizar no piloto automático.
A mudança mais interessante é cultural
Durante anos, boa parte da performance em React foi tratada como responsabilidade direta do desenvolvedor: memorizar valores, estabilizar funções, evitar renders, embrulhar componentes.
Agora, parte desse trabalho começa a migrar para a ferramenta.
Isso muda a forma de pensar componentes. Em vez de escrever código já tentando antecipar todos os gargalos possíveis, você pode começar com uma implementação clara, medir quando necessário e deixar que o compilador ajude com otimizações seguras.
O
useMemoe ouseCallbacknão acabaram. Mas talvez esteja acabando a fase em que a gente usa os dois só para se sentir uma pessoa responsável.
