[HILT] - Hack I Learned Today - Compartilhe o hackzinho quê você aprendeu hoje
Hack I Learned Today
Fala turma, a ideia é simples, compartilhe aquele hackzinho que você aprendeu hoje de bobeira, por conta de alguma situação ímpar no trabalho ou progredindo em algum projeto pessoal.
Segue abaixo meus aprendizados de hoje:
Lazy loading + Suspense (ReactJS):
Lazy loading (Code-Splitting):
É basicamente uma forma de carregar os conteúdos de uma página / componente por demanda.
De forma que ao acessar a home do seu projeto (por exemplo), não será necessário carregar todas os demais recursos presentes em outras páginas, ainda não acessadas pelo usuário.
Suspense:
Suspense permite que a renderização do componente espere por algo antes de efetivamente acontecer.
Em conjunto com o lazy loading, basicamente conseguimos passar uma renderização temporária como feedback para o usuário enquanto os recursos são carregados.
Informando na propriedade fallback
do componente, muito chique para usar aqueles componentes de esqueleto enquanto os recursos estão sendo carregados.
import React, { Suspense } from 'react';
const OtherComponent = React.lazy(() => import('./OtherComponent'));
const AnotherComponent = React.lazy(() => import('./AnotherComponent'));
function MyComponent() {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<section>
<OtherComponent />
<AnotherComponent />
</section>
</Suspense>
</div>
);
}
Alguns links:
Segue um vídeo muito top do canal do Pedro Tech, utilizando esses recursos na parte de rotas da aplicação:
https://www.youtube.com/watch?v=-4fyyyQjsz8&ab_channel=PedroTech
Exemplo de código extraído da documentação do react:
https://reactjs.org/docs/code-splitting.html
Alguns componentes de feedback interessantes para utilizar em conjunto com o Suspense (Ant Design):
https://ant.design/components/skeleton
https://ant.design/components/spin