"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > useMemo Hook explicado

useMemo Hook explicado

Publicado em 2024-11-02
Navegar:935

useMemo Hook Explained

O gancho useMemo faz parte da API Hooks do React, introduzida no React 16.8, projetada para otimizar o desempenho memorizando os resultados de cálculos caros. Aqui está uma explicação detalhada:

O que é useMemo?

useMemo é um gancho que retorna um valor memorizado. Ele permite armazenar em cache o resultado de um cálculo para que ele não precise ser recalculado em cada renderização, a menos que suas dependências sejam alteradas. Isso pode ajudar a evitar novas renderizações desnecessárias e melhorar o desempenho do seu aplicativo React.

Sintaxe

const memoizedValue = useMemo(() => {
  // computation or expensive calculation
  return value;
}, [dependencies]);

Parâmetros

  1. Função (retorno de chamada): Uma função que retorna um valor que você deseja memorizar.
  2. Matriz de dependências: Uma matriz de dependências que, quando alterada, fará com que o valor memorizado seja recalculado. Se esta matriz estiver vazia, o valor será calculado apenas uma vez (como componentDidMount).

Como funciona

  • Na renderização inicial, useMemo executará a função fornecida e retornará seu resultado, que é armazenado em memoizedValue.
  • Nas renderizações subsequentes, o React verificará se alguma das dependências foi alterada. Caso contrário, ele retornará o valor armazenado em cache em vez de recalculá-lo.
  • Se alguma dependência foi alterada, o React executará a função novamente, atualizará o valor armazenado em cache e retornará o novo valor.

Exemplo

Aqui está um exemplo simples para ilustrar useMemo:

import React, { useState, useMemo } from 'react';

const ExpensiveComponent = ({ number }) => {
  const computeFactorial = (n) => {
    console.log('Calculating factorial...');
    return n  computeFactorial(number), [number]);

  return (
    

Factorial of {number} is {factorial}

); }; const App = () => { const [num, setNum] = useState(0); return (
); }; export default App;

Quando usar useMemo

  • Cálculos caros: Use useMemo quando você tiver cálculos que são caros em termos de desempenho e só precisam ser recalculados quando entradas específicas mudam.
  • Evitando renderizações desnecessárias: Se você passar objetos ou matrizes como adereços para componentes filhos, poderá usar useMemo para garantir que eles não sejam recriados em cada renderização, evitando novas renderizações desnecessárias.

Considerações importantes

  • Desempenho: O uso excessivo de useMemo pode levar a códigos mais complexos e nem sempre gerar benefícios de desempenho. É melhor usá-lo para cálculos realmente caros.
  • Recriação de função: Se você estiver memorizando funções, tenha cuidado, pois a definição da função ainda será recriada, a menos que seja agrupada em useCallback.

Conclusão

useMemo é uma ferramenta poderosa no React para otimizar o desempenho memorizando valores. Isso pode ajudar a garantir que cálculos caros sejam realizados apenas quando necessário, aumentando assim a eficiência dos componentes do React. No entanto, deve ser usado criteriosamente para evitar complexidade desnecessária em seu código.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/imyusufakhtar/usememo-hook-explained-2gee?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3