Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Diferença entre useEffect e useMemo

Olá,

O useEffect e o useMemo só são chamados quando a(s) dependencia(s) mudam. Então esses dois hooks não tem o mesmo efeito? Pois, com o hook useMemo podemos armazenar em cache cálculos e atualizá-los com uma nova renderização apenas se os dados mudarem, entretanto não temos o mesmo efeito com o useEffect?

Obrigado.

1 resposta
solução!

Olá Tiago! Tudo ok contigo?

O useEffect e o useMemo são Hooks do React que têm funções semelhantes, mas são usados em contextos diferentes.

O useEffect é um Hook que permite a execução de efeitos colaterais em componentes funcionais. Ele é chamado após a renderização do componente e é normalmente usado para ações como chamadas de API, manipulação de DOM, subscrições, timers e logging.

Por outro lado, o useMemo é um Hook que retorna um valor memoizado, ou seja, ele vai lembrar o valor da última execução e só vai reexecutar se as dependências mudarem. Ele é usado principalmente para otimização de performance em situações que envolvem cálculos pesados.

Um exemplo prático para entender a diferença seria:

// useEffect
useEffect(() => {
  const result = someHeavyComputation(data);
  setResult(result);
}, [data]);

// useMemo
const result = useMemo(() => someHeavyComputation(data), [data]);

No caso do useEffect, o cálculo é feito e depois o resultado é definido, o que causa uma nova renderização. Já no useMemo, o valor é calculado e armazenado, e só será recalculado se a dependência data mudar, sem causar uma nova renderização.

Então, embora ambos sejam chamados quando as dependências mudam, eles têm usos diferentes. O useEffect é mais para efeitos colaterais após a renderização e o useMemo é para otimização de cálculos pesados.

Entendeu? Bom, era isso, se precisar eu estarei por aqui!

Espero ter ajudado, abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor marque ele como solução! ✓

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software