Hidratação progressiva com hidratação seletiva
Use a hidratação seletiva do React 18 para priorizar a hidratação dos componentes com os quais o usuário interage primeiro.
Hidratação progressiva com hidratação seletiva é uma aula grátis de React Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.
O Que é Hidratação Seletiva
A hidratação seletiva é um recurso do React 18 que permite ao React começar a hidratar componentes assim que o código JavaScript deles chega, sem esperar que o JavaScript da página inteira seja baixado. Cada seção com divisão de código independente é hidratada quando seu pacote é carregado, e não toda de uma vez.
React 18: Sem Hidratação em um Grande Salto
Antes do React 18, a hidratação era "tudo ou nada" — o React precisava baixar todo o JavaScript e hidratar a árvore inteira antes que qualquer parte da página se tornasse interativa. O React 18 elimina essa restrição: partes da árvore são hidratadas de forma independente conforme o código e os dados ficam disponíveis.
A Interação do Usuário Prioriza a Hidratação
Se o usuário clicar ou interagir com um limite Suspense que ainda não foi hidratado, o React priorizará imediatamente a hidratação dessa subárvore antes de qualquer outro trabalho de hidratação pendente. Isso significa que aquilo que o usuário está tentando usar se torna interativo primeiro, mesmo que não esteja na ordem do documento.
React.lazy e Suspense para Divisão de Código
A combinação de React.lazy com importações dinâmicas e limites Suspense permite a hidratação seletiva de componentes com divisão de código. O navegador baixa primeiro o pacote principal de JS, hidratando imediatamente a estrutura inicial. Cada componente carregado sob demanda é hidratado quando seu bloco é baixado — progressivamente, conforme o navegador os busca.
O Impacto na Experiência do Usuário
O resultado é que o conteúdo acima da dobra se torna interativo antes mesmo de o JavaScript abaixo da dobra ser baixado. O usuário pode interagir com a navegação e a CTA da seção de destaque enquanto o fluxo de comentários e o componente de recomendações ainda estão carregando seus blocos de JavaScript.
Medindo o Impacto
A hidratação seletiva reduz o Tempo Total de Bloqueio (TBT) — a principal métrica de desempenho da hidratação. Na aba Desempenho do Chrome DevTools, as tarefas longas (tarefas com mais de 50 ms) são destacadas em vermelho. Antes da hidratação seletiva, você pode ver uma única tarefa longa de 300 ms para a hidratação completa; depois, vê várias tarefas pequenas distribuídas ao longo do tempo.
Como Evitar Importações Antecipadas de Nível Superior
O antipadrão que prejudica a hidratação seletiva é importar todos os componentes no nível superior do aplicativo: import Footer from './Footer'. Isso força o navegador a baixar, analisar e executar o código de Footer antes que qualquer hidratação comece. Substitua as importações de nível superior dos componentes abaixo da dobra por React.lazy + importações dinâmicas.
Importações Dinâmicas para Conteúdo Abaixo da Dobra
Use const Footer = React.lazy(() => import('./Footer')) para componentes que aparecem abaixo da área de visualização inicial. Envolva-os em Suspense com uma interface alternativa simples. O navegador reduz a prioridade de busca do pacote de Footer até que a hidratação do conteúdo acima da dobra seja concluída, melhorando naturalmente o TBT.
A Relação entre Transmissão em Fluxo e Hidratação Seletiva
A transmissão em fluxo e a hidratação seletiva são complementares: a transmissão em fluxo envia blocos de HTML para melhorar FCP e LCP, enquanto a hidratação seletiva processa blocos de JavaScript para melhorar TTI e TBT. Juntas, elas abrangem tanto a dimensão de "mostrar o conteúdo rapidamente" quanto a de "torná-lo interativo rapidamente" do desempenho.
Hidratação Seletiva e Componentes de Servidor do React
Os Componentes de Servidor do React levam a hidratação seletiva ainda mais longe: os componentes de servidor não produzem nenhum JavaScript para o cliente. Somente os componentes do cliente (marcados com "use client") precisam ser hidratados. Isso reduz a quantidade total de JavaScript que precisa ser hidratada, tornando a hidratação seletiva ainda mais eficaz.
Arquitetura Prática de Hidratação Seletiva
Um padrão prático é usar renderToPipeableStream para transmitir HTML, envolver a página em uma chamada de hydrateRoot na raiz (em vez de createRoot) para ativar o modo de hidratação, usar React.lazy para todas as seções abaixo da dobra e envolver cada seção em um limite Suspense. O React cuida do restante automaticamente.
Interação do Usuário e Hidratação Seletiva
Como a interação do usuário afeta a prioridade da hidratação seletiva no React 18?
Resumo da Lição
A hidratação seletiva permite que o React hidrate subárvores de componentes progressivamente, conforme o JavaScript delas chega, em vez de esperar pelo pacote completo. As interações do usuário priorizam a hidratação da subárvore selecionada. React.lazy + importações dinâmicas para conteúdo abaixo da dobra, combinadas com limites Suspense, permitem esse padrão progressivo. A hidratação seletiva e o SSR em transmissão em fluxo são técnicas complementares que, juntas, abrangem tanto a entrega de conteúdo quanto o desempenho da interatividade.
Perguntas Frequentes
A aula “Hidratação progressiva com hidratação seletiva” é grátis?
Sim — o texto completo de “Hidratação progressiva com hidratação seletiva” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.
O que vou aprender em “Hidratação progressiva com hidratação seletiva”?
Use a hidratação seletiva do React 18 para priorizar a hidratação dos componentes com os quais o usuário interage primeiro. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar React Academy?
Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Hidratação progressiva com hidratação seletiva”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de React Academy?
Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Transmissão no React 18: como funciona renderToPipeableStream
- Limites de Suspense e prioridade de transmissão
- Hidratação progressiva com hidratação seletiva
- Medindo o impacto da transmissão: FCP, TTI e LCP