Estados de Carregamento
Parte da seção Essenciais do Next.js do Journey de React da Coddy — lição 26 de 47.
Uma página async é tão rápida quanto o seu carregamento mais lento. Enquanto o Next.js espera, o usuário está olhando para… o quê, exatamente?
Coloque um loading.jsx ao lado da página e a resposta é: o que você quiser.
app/
slow/
page.jsx the async page
loading.jsx shown while it resolvesÉ um componente comum com um export default e não recebe props:
export default function Loading() {
return <p>Loading the special…</p>;
}Você nunca o renderiza manualmente e nunca o importa. Colocar o arquivo ao lado da página envolve essa página em uma fronteira de Suspense: o Next.js exibe loading.jsx no momento em que você navega, substitui pela página real quando os awaits terminam e o layout ao redor nunca pisca.
Duas coisas decorrem de onde o arquivo fica:
- Ele cobre a página ao lado dele e tudo o que estiver aninhado abaixo, até que um
loading.jsxmais profundo assuma o controle - Apenas a página é substituída: cabeçalhos e navegação do layout permanecem no lugar e continuam clicáveis
Note o que você não escreveu: nenhum flag de carregamento, nenhum estado, nenhum if (loading). O nome do arquivo é o mecanismo.
Desafio
Fácilapp/slow/page.jsx aguarda um carregamento lento, e app/slow/loading.jsx já existe, mas está vazio.
- Dentro do seu
<main>, adicione um<p>comid="loading". - Seu texto deve ser exatamente
Loading the special...
A página e lib/data.js estão bloqueados. Os testes navegam para /slow e olham para a tela antes que os dados cheguem.
Experimente você mesmo
import './globals.css';
export const metadata = {
title: 'My App',
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{children}
</body>
</html>
);
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Essenciais do Next.js
1Por que usar o Next.js
O que o Next.js adicionaA pasta AppSua primeira páginaRecapitulação: Por que usar o Next.js2Roteamento e Links
Pastas São RotasRotas AninhadasVinculando PáginasRotas DinâmicasPáginas Não EncontradasRecapitulação: Roteamento5Dados no Servidor
Componentes AssíncronosAguardando Parâmetros de RotaDuas Buscas ao Mesmo TempoEstados de CarregamentoTratamento de ErrosRecapitulando: Busca de Dados