12 Mar 2023
8 min

Otimizando Performance em Aplicações React

React
Performance
JavaScript
Otimizando Performance em Aplicações React
Lucas Medeiros
Lucas Medeiros
Desenvolvedor Front-end Sênior

A performance é um aspecto crucial no desenvolvimento de aplicações React modernas. Neste artigo, vamos explorar técnicas avançadas que podem ajudar a otimizar significativamente o desempenho das suas aplicações.

Memoização com React.memo, useMemo e useCallback

A memoização é uma técnica poderosa para evitar renderizações desnecessárias. O React oferece várias ferramentas para implementar memoização:

  • React.memo: Um HOC que memoriza o resultado da renderização de um componente.
  • useMemo: Um hook que memoriza o resultado de uma função.
  • useCallback: Um hook que memoriza uma função callback.

Code Splitting com React.lazy e Suspense

O code splitting permite dividir seu bundle em pedaços menores que são carregados sob demanda, reduzindo o tempo de carregamento inicial:


      const LazyComponent = React.lazy(() => import('./LazyComponent'));
      
      function App() {
        return (
          <React.Suspense fallback={<div>Loading...</div>}>
            <LazyComponent />
          </React.Suspense>
        );
      }
      

Renderização Condicional Otimizada

Implementar renderização condicional de forma eficiente pode evitar trabalho desnecessário:


      {shouldRender && <ExpensiveComponent />}
      

Virtualização de Listas Longas

Para listas com muitos itens, a virtualização renderiza apenas os itens visíveis na viewport:


      import { FixedSizeList } from 'react-window';
      
      function VirtualizedList({ items }) {
        const Row = ({ index, style }) => (
          <div style={style}>
            {items[index]}
          </div>
        );
      
        return (
          <FixedSizeList
            height={500}
            width={300}
            itemCount={items.length}
            itemSize={35}
          >
            {Row}
          </FixedSizeList>
        );
      }
      

Conclusão

Implementar estas técnicas de otimização pode melhorar significativamente a performance da sua aplicação React, proporcionando uma experiência mais fluida para os usuários.