Divisão de Código - Code-Splitting


A divisão de código é uma técnica que envolve quebrar o código de uma aplicação em partes menores e carregá-las sob demanda. Isso é particularmente benéfico em projetos grandes, nos quais não é necessário carregar todos os recursos de uma vez. O Code-Splitting é uma estratégia eficaz para otimizar o desempenho, reduzir o tempo de carregamento inicial e melhorar a experiência do usuário.

Ao combinar React.lazy e Suspense, você pode aplicar a divisão de código em componentes individuais, carregando-os de forma assíncrona apenas quando necessário. Isso ajuda a otimizar o desempenho da sua aplicação, pois evita a carga desnecessária de código no carregamento inicial.

Exemplo prático

Suponha que tenhamos um componente LazyComponent que queremos carregar apenas quando um botão é clicado.

import React, { lazy, Suspense } from 'react';
 
// Componente que será carregado de forma lazy
const LazyComponent = lazy(() => import('./LazyComponent'));
 
// Componente pai que usa React.lazy e Suspense
const App = () => {
  const handleClick = async () => {
    // Carrega LazyComponent apenas quando o botão é clicado
    await import('./LazyComponent');
  };
 
  return (
    <div>
      <button onClick={handleClick}>Carregar LazyComponent</button>
      <Suspense fallback={<div>Carregando...</div>}>
        <LazyComponent />
      </Suspense>
    </div>
  );
};
 
export default App;

Neste exemplo, o componente LazyComponent é carregado apenas quando o botão é clicado, graças à combinação do React.lazy e Suspense. O fallback no Suspense fornece um componente de carregamento enquanto o componente lazy está sendo carregado.

Atenção

A adoção dessa técnica só é recomendado em cenários onde há a necessidade de otimizar o desempenho da aplicação, ou seja, em projetos grandes. Dessa forma, não é recomendado o seu uso para aplicações de pequeno porte, uma vez que abordagens como esta aumentam significantemente a complexidade.

Referências