Sintassi Astro
Se conosci l’HTML, ne sai già abbastanza per scrivere il tuo primo componente Astro.
La sintassi del componente Astro è un superset di HTML. La sintassi è stata progettata per risultare familiare a chiunque abbia esperienza nella scrittura di HTML o JSX e aggiunge il supporto per includere componenti ed espressioni JavaScript.
Espressioni simili a JSX
Sezione intitolata Espressioni simili a JSXPuoi definire variabili JavaScript locali all’interno dello script del componente frontmatter tra i due separatori del codice (---
) di un componente Astro. Puoi quindi inserire queste variabili nel modello HTML del componente utilizzando espressioni simili a JSX!
Utilizzando questo approccio, puoi includere valori dinamici calcolati nel frontmatter. Ma una volta inclusi, questi valori non sono reattivi e non cambieranno mai. I componenti Astro sono modelli che vengono eseguiti solo una volta, durante la fase di rendering.
Vedi sotto per ulteriori esempi di differenze tra Astro e JSX.
Variabili
Sezione intitolata VariabiliLe variabili locali possono essere aggiunte all’HTML utilizzando la sintassi delle parentesi graffe:
Attributi dinamici
Sezione intitolata Attributi dinamiciLe variabili locali possono essere utilizzate tra parentesi graffe per passare i valori degli attributi sia agli elementi che ai componenti HTML:
Gli attributi HTML verranno convertiti in stringhe, quindi non è possibile passare funzioni e oggetti agli elementi HTML. Ad esempio, non puoi assegnare un gestore eventi a un elemento HTML in un componente Astro:
Utilizza invece uno script lato client per aggiungere il gestore eventi, come faresti in JavaScript puro:
HTML dinamico
Sezione intitolata HTML dinamicoLe variabili locali possono essere utilizzate in funzioni simili a JSX per produrre elementi HTML generati dinamicamente:
Astro può visualizzare in modo condizionale l’HTML utilizzando gli operatori logici JSX e le espressioni ternarie.
Tag dinamici
Sezione intitolata Tag dinamiciPuoi anche utilizzare tag dinamici impostando una variabile sul nome di un tag HTML o sull’importazione di un componente:
Quando si utilizzano tag dinamici:
-
I nomi delle variabili devono essere scritti in maiuscolo. Ad esempio, utilizza
Element
, nonelement
. Altrimenti, Astro proverà a rendere il nome della tua variabile come un tag HTML letterale. -
Le direttive di idratazione non sono supportate. Quando si utilizzano le direttive di idratazione
client:*
, Astro deve sapere quali componenti raggruppare per la produzione e il modello di tag dinamico ne impedisce il funzionamento.
Frammenti
Sezione intitolata FrammentiAstro supporta l’uso di <Fragment> </Fragment>
o della abbreviazione <> </>
.
I frammenti possono essere utili per evitare elementi wrapper quando si aggiungono direttive set:*
, come nell’esempio seguente:
Differenze tra Astro e JSX
Sezione intitolata Differenze tra Astro e JSXLa sintassi del componente Astro è un superset di HTML. È stato progettato per risultare familiare a chiunque abbia esperienza con HTML o JSX, ma ci sono un paio di differenze fondamentali tra i file “.astro” e JSX.
Attributi
Sezione intitolata AttributiIn Astro, utilizzi il formato standard “kebab-case” per tutti gli attributi HTML invece del formato “camelCase” utilizzato in JSX. Funziona anche per “class”, che non è supportato da React.
Elementi multipli
Sezione intitolata Elementi multipliUn modello di componente Astro può eseguire il rendering di più elementi senza la necessità di racchiudere tutto in un singolo <div>
o <>
, a differenza di JavaScript o JSX.
Commenti
Sezione intitolata CommentiIn Astro, puoi utilizzare commenti HTML standard o commenti in stile JavaScript.
I commenti in stile HTML verranno inclusi nel DOM del browser, mentre quelli JS verranno saltati. Per lasciare messaggi TODO o altre spiegazioni riservate allo sviluppo, potresti invece voler utilizzare commenti in stile JavaScript.