"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 > Re-renderização do React: práticas recomendadas para desempenho ideal

Re-renderização do React: práticas recomendadas para desempenho ideal

Publicado em 2024-11-05
Navegar:581

React Re-Rendering: Best Practices for Optimal Performance

O mecanismo de renderização eficiente do React é um dos principais motivos de sua popularidade. No entanto, à medida que a complexidade de um aplicativo aumenta, o gerenciamento de novas renderizações de componentes torna-se crucial para otimizar o desempenho. Vamos explorar as melhores práticas para otimizar o comportamento de renderização do React e evitar novas renderizações desnecessárias.

1. Use React.memo() para componentes funcionais

React.memo() é um componente de ordem superior que memoriza a renderização de um componente funcional. Ele evita novas renderizações desnecessárias, realizando uma comparação superficial dos adereços atuais com os adereços anteriores. Se os adereços não foram alterados, o React ignora a renderização do componente e reutiliza o último resultado renderizado.

import React from 'react';

const MemoizedComponent = React.memo(function MyComponent(props) {
  // Component logic
});

2. Implementar PureComponent para componentes de classe

Se você estiver usando componentes de classe, considere estender PureComponent em vez de Component. PureComponent realiza uma comparação superficial de adereços e estado para determinar se um componente deve ser atualizado. Isso ajuda a evitar novas renderizações desnecessárias quando os adereços e o estado não foram alterados.

import React, { PureComponent } from 'react';

class MyComponent extends PureComponent {
  // Component logic
}

3. Evite definições de funções embutidas

Definir funções dentro do método de renderização pode levar a novas renderizações desnecessárias. Em vez disso, defina funções fora do método de renderização ou use funções de seta para manipuladores de eventos concisos.

class MyComponent extends React.Component {
  handleClick = () => {
    // Handle click
  };

  render() {
    return ;
  }
}

4. Use o gancho useCallback para memorizar funções

O gancho useCallback é usado para memorizar funções. Ele evita a recriação desnecessária de funções em cada renderização, o que pode levar a novas renderizações desnecessárias de componentes filhos que dependem dessas funções.

import React, { useCallback } from 'react';

function MyComponent() {
  const handleClick = useCallback(() => {
    // Handle click
  }, []);

  return ;
}

5. Aproveite o gancho useMemo para cálculos caros

O gancho useMemo é usado para memorizar cálculos caros. Ele evita o recálculo desnecessário de valores em cada renderização, o que pode melhorar o desempenho, especialmente para cálculos complexos.

import React, { useMemo } from 'react';

function MyComponent({ items }) {
  const filteredItems = useMemo(() => items.filter(item => item.visible), [items]);

  return (
    
    {filteredItems.map(item => (
  • {item.name}
  • ))}
); }

6. Use chaves corretamente em listas

Ao renderizar listas de componentes, sempre forneça uma propriedade de chave exclusiva. O React usa chaves para identificar elementos de forma eficiente durante a reconciliação. Chaves incorretas ou ausentes podem levar a problemas de desempenho e comportamento inesperado.

    {items.map(item => (
  • {item.name}
  • ))}

7. Implementar divisão de código com importações dinâmicas

A divisão de código permite dividir o código do seu aplicativo em partes menores. Ao usar importações dinâmicas (import()), você pode carregar partes do seu aplicativo sob demanda, reduzindo o tamanho inicial do pacote e melhorando o tempo de carregamento.

import React, { lazy, Suspense } from 'react';

const MyComponent = lazy(() => import('./MyComponent'));

function App() {
  return (
    Loading...}>
      
  );
}

8. Implementar janelas para listas grandes

O uso de janelas, também conhecido como virtualização, envolve a renderização apenas dos itens atualmente visíveis na tela. Esta técnica é particularmente útil ao lidar com listas grandes, pois reduz o tempo de renderização inicial e melhora o desempenho da rolagem.

Bibliotecas como react-virtualized e react-window fornecem implementações eficientes de janelas para aplicativos React.

9. Implementar carregamento lento para imagens

Imagens de carregamento lento podem melhorar significativamente o tempo de carregamento inicial do seu aplicativo. Ao adiar o carregamento das imagens até que elas sejam necessárias (ou seja, quando elas estiverem prestes a aparecer na janela de visualização), você pode reduzir o tamanho inicial do pacote e melhorar o desempenho percebido.

Bibliotecas como react-lazyload e react-lazy-load-image-component fornecem soluções de carregamento lento fáceis de usar para aplicativos React.

10. Use estruturas de dados imutáveis

Estruturas de dados imutáveis ​​ajudam a otimizar o desempenho de renderização do React, reduzindo a necessidade de verificações profundas de igualdade. Ao usar dados imutáveis, o React pode determinar rapidamente se um componente precisa ser renderizado novamente, comparando a referência dos dados, em vez de realizar uma comparação profunda.

Bibliotecas como Immutable.js e Immer fornecem estruturas de dados imutáveis ​​e funções auxiliares para trabalhar com dados imutáveis ​​em aplicativos React.

Conclusão

Otimizar o desempenho de renderização do React é crucial para fornecer uma experiência de usuário suave e responsiva. Seguindo essas práticas recomendadas e aproveitando os recursos e ganchos integrados do React, você pode criar aplicativos React de alto desempenho que encantam seus usuários.

Lembre-se de traçar continuamente o perfil e medir o desempenho do seu aplicativo para identificar gargalos e áreas de melhoria. O rico ecossistema de ferramentas e bibliotecas do React, como React DevTools e soluções de monitoramento de desempenho, pode ajudá-lo nesse processo.

Para assistência especializada em desenvolvimento React, entre em contato com a ViitorCloud Technologies para contratar desenvolvedores ReactJS qualificados.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/viitorcloud/react-re-rendering-best-practices-for-optimal-performance-30bo?1 Se houver alguma violação, entre em contato com [email protected] para excluir isto
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