React, o que é o tal do Lazy Loading?

Leandro A. Siqueira
3 min readOct 16, 2024

--

San Francisco City Hall by Anthony Delanoix

Lazy loading é uma técnica que permite carregar componentes ou recursos de um aplicativo apenas quando eles são realmente necessários. Em vez de carregar tudo de uma vez quando a aplicação é iniciada, você carrega apenas o que o usuário está vendo ou interagindo naquele momento.

Exemplos de Lazy Loading em React

Componentes de Página: Se você tem uma aplicação com várias páginas, pode usar lazy loading para carregar componentes de página apenas quando o usuário navega até eles. Por exemplo, uma página de “Sobre” só carrega quando o usuário clica no link para essa página.

Imagens: Você pode carregar imagens somente quando elas estão prestes a aparecer na tela, usando bibliotecas específicas para isso ou APIs do React.

Bibliotecas Externas: Se você está usando uma biblioteca grande que não é necessária em todas as páginas, pode carregá-la de forma lazy quando for realmente usada.

O que é Suspense?

Suspense é uma funcionalidade do React que permite lidar com o carregamento de componentes que usam lazy loading. Com o Suspense, você pode “suspender” a renderização de um componente até que os dados ou o componente estejam prontos. Isso significa que você pode mostrar um fallback (uma mensagem de carregamento, por exemplo) enquanto espera que o conteúdo seja carregado.

Como Funciona Juntos?

Veja um exemplo básico de como usar lazy loading com Suspense:

Importando o Componente: Você pode usar React.lazy() para carregar um componente de forma assíncrona.

Usando o Suspense: Envolva o componente carregado com o Suspense e forneça um fallback.

Neste exemplo, enquanto LazyComponent está sendo carregado, a mensagem “Carregando…” será exibida.

Quando Usar Lazy Loading e Suspense

Componentes Pesados: Se você tem componentes grandes ou complexos que não são necessários imediatamente, o lazy loading com Suspense pode melhorar a performance.

Divisão de Códigos: Quando sua aplicação cresce e você precisa dividir o código em partes menores para um carregamento mais eficiente.Experiência do Usuário: Usar Suspense para fornecer feedback visual (como uma tela de carregamento) enquanto um componente é carregado melhora a experiência do usuário.

Benefícios de Usar Lazy Loading com Suspense

Melhoria na Performance: Carregar apenas o necessário ajuda a diminuir o tempo de carregamento.

Feedback para o Usuário: Com o Suspense, você pode fornecer um feedback visual, evitando que os usuários fiquem confusos enquanto esperam o conteúdo.

Organização do Código: A combinação de lazy loading e Suspense permite que você organize melhor sua aplicação, dividindo-a em partes que podem ser carregadas sob demanda.

Deve-se Usar Lazy Loading em Todos os Casos?

Não necessariamente. Veja algumas considerações:

Componentes Pequenos: Para componentes que são leves e usados em várias partes da aplicação, o lazy loading pode não ser necessário e pode até adicionar complexidade.

Aplicações Simples: Em aplicações menores, o ganho em performance pode ser insignificante, então pode ser mais prático carregar tudo de uma vez.

Experiência do Usuário: Se o uso de lazy loading causar atrasos perceptíveis no carregamento de componentes que o usuário espera ver rapidamente, pode ser melhor evitar.

Embora o lazy loading e o Suspense sejam muito úteis, é importante usá-los de forma consciente. Em aplicações pequenas, a complexidade adicional pode não ser necessária. Sempre avalie se os benefícios superam os custos em termos de desempenho e usabilidade. Em resumo, eles são ferramentas poderosas para otimizar aplicações React, especialmente em projetos maiores!

--

--

Leandro A. Siqueira
Leandro A. Siqueira

Written by Leandro A. Siqueira

Well, I woke up this morning and I got myself a beer!

No responses yet