Arquitetura de ilhas: hidratação seletiva
Aprenda como as ilhas isolam componentes interativos, para que somente eles enviem JavaScript enquanto o restante permanece como HTML estático.
Arquitetura de ilhas: hidratação seletiva é uma aula grátis de React Academy no CoddyKit. Esta é a aula 2 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 conceito de ilhas
A Arquitetura de ilhas, termo criado por Jason Miller em 2020, trata uma página web como HTML em sua maior parte estático, com "ilhas" isoladas de interatividade incorporadas a ele. O oceano estático de HTML é enviado ao navegador como está. Somente as ilhas interativas baixam e executam JavaScript, fazendo com que a carga de JavaScript seja proporcional à interatividade real.
Como as ilhas funcionam
Cada ilha é um componente hidratado de forma independente. O servidor renderiza o HTML inicial da ilha junto com o restante da página. Quando o JavaScript da ilha é carregado, ele hidrata somente a subárvore desse componente. O HTML ao redor das ilhas nunca é tocado pelo JavaScript — ele é realmente estático.
A diferença na carga de JavaScript
Em uma página de publicação de blog com Arquitetura de ilhas, a carga de JavaScript pode ser de 5 KB para uma única ilha de botão de curtir. A mesma página criada como uma aplicação React de página única pode enviar mais de 200 KB de JavaScript para hidratar a página inteira. A abordagem das ilhas torna a carga proporcional à interatividade, e não ao tamanho da página.
Ilhas com várias estruturas
O Astro, a principal estrutura de Arquitetura de ilhas, oferece suporte a ilhas criadas com diferentes estruturas na mesma página. É possível ter uma ilha React ao lado de uma ilha Vue e de uma ilha de JavaScript puro. Cada ilha é empacotada de forma independente, portanto os usuários baixam somente o código da estrutura usado pelas ilhas visíveis.
client:load — Hidratação imediata
A diretiva client:load hidrata a ilha imediatamente quando a página é carregada. Use-a para ilhas que estejam imediatamente visíveis e interativas, como um menu de navegação ou uma seção principal com um campo de pesquisa. Essa é a estratégia de hidratação de maior prioridade.
client:idle — Hidratação adiada
A diretiva client:idle espera até que a linha de execução principal do navegador esteja ociosa (depois que o conteúdo essencial for carregado) antes de hidratar a ilha. Ela é ideal para componentes mais abaixo na página ou interações secundárias que não são necessárias imediatamente, como uma barra de compartilhamento em redes sociais.
client:visible — Hidratação sob demanda
A diretiva client:visible usa um observador de interseção para hidratar a ilha somente quando ela entra na área visível. Ela é ideal para ilhas localizadas no final da página — uma seção de comentários ou um carrossel de produtos relacionados — que a maioria dos usuários talvez nunca alcance. O JavaScript nem sequer é carregado antes de ser necessário.
client:only — Ignorar SSR
A diretiva client:only ignora completamente a renderização no servidor e renderiza a ilha somente no navegador. Isso é necessário para componentes que usam APIs exclusivas do navegador (objeto de janela, objeto de documento) ou que dependem do estado do cliente no momento da montagem. A desvantagem é não haver HTML renderizado pelo servidor para essa ilha.
Resolvendo o problema da hidratação
A Arquitetura de ilhas resolve completamente o problema da hidratação ao garantir que o JavaScript seja carregado e executado somente para componentes genuinamente interativos. Uma publicação de blog com um botão de curtir hidrata apenas a ilha do botão — o texto do artigo de 1.200 palavras, o cabeçalho e o rodapé não geram nenhuma execução de JavaScript no cliente.
Isolamento de estado entre ilhas
Cada ilha tem seu próprio estado isolado. As ilhas não podem compartilhar diretamente o estado do React porque são árvores do React separadas. Isso é intencional: se dois componentes precisarem compartilhar estado, deverão ser combinados em uma única ilha. A comunicação entre ilhas usa parâmetros do endereço, eventos do DOM ou bibliotecas leves de gerenciamento de estado.
Resultados no mundo real
Sites migrados de uma aplicação React de página única para a Arquitetura de ilhas, como o site de documentação do Astro, relatam melhorias expressivas: as cargas de JavaScript diminuem de 70% a 90%, o TTI melhora em 2 a 4 segundos em dispositivos móveis e as pontuações de desempenho do Lighthouse saltam de 60 para 90 ou mais. Os ganhos são mais acentuados em páginas com muito conteúdo.
Estratégias de Hidratação de Ilhas
Qual diretiva de hidratação do Astro hidrata um componente somente quando ele rola para dentro da área visível?
Recapitulação da Lição
A Arquitetura de Ilhas mantém a maior parte da página como HTML estático e hidrata somente componentes interativos isolados. O Astro fornece diretivas de hidratação: client:load (imediatamente), client:idle (após o navegador ficar ocioso), client:visible (ao rolar a página) e client:only (renderização somente no cliente). Cada ilha é hidratada de forma independente, fazendo com que a quantidade de JavaScript seja proporcional à interatividade, e não ao tamanho da página.
Perguntas Frequentes
A aula “Arquitetura de ilhas: hidratação seletiva” é grátis?
Sim — o texto completo de “Arquitetura de ilhas: 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 “Arquitetura de ilhas: hidratação seletiva”?
Aprenda como as ilhas isolam componentes interativos, para que somente eles enviem JavaScript enquanto o restante permanece como HTML estático. 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 2 de 4.
Quanto tempo leva a aula “Arquitetura de ilhas: 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
- O problema da hidratação completa
- Arquitetura de ilhas: hidratação seletiva
- Configuração de ilhas Astro e React
- Medindo o desempenho: Lighthouse e Core Web Vitals