Construa sua primeira ilha Astro
Utilize um componente Preact para saudar seus visitantes com uma mensagem randomicamente selecionada!
Se prepare para...
- Adicionar Preact ao seu projeto Astro
- Incluir ilhas Astro (componentes Preact
.jsx
) em sua página inicial - Utilizar diretivas
client:
para fazer ilhas interativas
Adicione Preact ao seu projeto Astro
Seção intitulada Adicione Preact ao seu projeto Astro-
Se ele estiver executando, feche o servidor de desenvolvimento para ter acesso ao terminal (atalho de teclado: Ctrl + C).
-
Adicione a habilidade de utilizar componentes Preact em seu projeto Astro com um único comando:
-
Siga as instruções da linha de comando para confirmar a adição do Preact ao seu projeto.
Inclua um banner de saudação com Preact
Seção intitulada Inclua um banner de saudação com PreactEsse componente irá receber um array de mensagens de saudação como uma prop e randomicamente selecionar uma delas para mostrar uma mensagem de boas-vindas. O usuário pode clicar em um botão para conseguir uma nova mensagem randômica.
-
Crie um novo arquivo em
src/components/
chamadoGreeting.jsx
Note a extensão de arquivo
.jsx
. Este arquivo será escrito em Preact, não Astro. -
Adicione o seguinte código para
Greeting.jsx
: -
Importe e utilize esse componente em sua página inicial
index.astro
.Verifique a pré-visualização no seu navegador: você deve ver uma saudação aleatória, mas o botão não irá funcionar!
-
Adicione um segundo componente
<Greeting />
com a diretivaclient:load
. -
Revisite sua página e compare os dois componentes. O segundo botão funciona pois a diretiva
client:load
diz ao Astro para enviar e executar novamente o JavaScript no cliente quando a página carrega, fazendo o componente interativo. Isso é chamado componente hidratado. -
Quando a diferença ficar clara, remova o componente Saudação não-hidratado.
Analise o Padrão
Seção intitulada Analise o PadrãoHá outras diretivas client:
para explorar. Cada uma envia JavaScript ao cliente em momentos diferentes. client:visible
, por exemplo, irá apenas enviar o JavaScript do componente quando ele é visível na página.
Considere um componente Astro com o seguinte código:
-
Quais dos cinco componentes serão ilhas hidratadas, enviando JavaScript ao cliente?
-
De que forma(s) os dois componentes
<BannerPreact />
serão o mesmo? De que forma(s) eles serão diferentes? -
Assuma que o componente
ContadorSvelte
mostra um número e tem um botão para aumentá-lo. Se você não pudesse ver o código do seu website, apenas a página publicada ao vivo, como você diria qual dos dois componentes<ContadorSvelte />
usaramclient:visible
?
Teste seu conhecimento
Seção intitulada Teste seu conhecimentoPara cada um dos seguintes componentes, identifique o que será enviado ao navegador:
-
<ContadorReact client:load/>
-
<CartaoSvelte />