Primi passi con Astro
Astro è un framework web moderno per creare siti web veloci e orientati ai contenuti. In questo tutorial, imparerai le basi di Astro e come iniziare il tuo primo progetto.
Cos’è Astro?
Astro è un framework web all-in-one focalizzato su contenuti e prestazioni. Ti permette di costruire siti web con meno JavaScript mantenendo un’interfaccia utente reattiva.
I principali vantaggi di Astro sono:
- Orientato ai contenuti: Ottimizzato per siti web ricchi di contenuti come blog, e-commerce e documentazione
- Server-first: Sposta quanto più lavoro possibile dal browser al server
- Zero-JS di default: Nessun JavaScript viene inviato al browser per impostazione predefinita
- Pronto per l’Edge: Puoi effettuare il deployment ovunque - anche sull’edge
- Personalizzabile: Tailwind, MDX, e oltre 100 integrazioni tra cui scegliere
- UI-agnostico: Supporta React, Preact, Svelte, Vue, Solid, Lit e altro ancora
Installare Astro
Puoi creare facilmente un nuovo progetto Astro utilizzando npm:
# Crea un nuovo progetto con npm
npm create astro@latestLa procedura guidata di configurazione di Astro ti guiderà attraverso i passi per configurare il tuo nuovo progetto. Puoi scegliere un template, aggiungere TypeScript e altro ancora.
Struttura del progetto
Un tipico progetto Astro si presenta così:
/
├── public/
│   └── favicon.svg
├── src/
│   ├── components/
│   │   └── Card.astro
│   ├── layouts/
│   │   └── Layout.astro
│   └── pages/
│       └── index.astro
└── package.jsonLe directory chiave sono:
- src/pages/: Contiene le tue pagine. Ogni file- .astrodiventa una route sul tuo sito web.
- src/components/: Contiene componenti UI riutilizzabili.
- src/layouts/: Contiene layout per le tue pagine.
- public/: Contiene asset statici come immagini e font.
Componenti Astro
I componenti Astro sono i blocchi di costruzione di un sito web Astro. Utilizzano una sintassi simile a HTML con espressioni JSX:
---
// Lo Script del Componente (JS/TS)
const saluto = "Ciao";
const nome = "Astro";
---
<!-- Template del Componente (HTML + Espressioni JS) -->
<div>
  <h1>{saluto}, {nome}!</h1>
  <p>Benvenuto in Astro!</p>
</div>
<style>
  /* Stili del Componente (con scope) */
  h1 {
    color: navy;
  }
</style>Content Collections
Astro v2.0+ ha introdotto le Content Collections, che forniscono un modo strutturato per lavorare con Markdown, MDX e altri formati di contenuto:
// src/content/config.ts
import { defineCollection, z } from 'astro:content';
const blogCollection = defineCollection({
  schema: z.object({
    title: z.string(),
    pubDate: z.date(),
    tags: z.array(z.string()),
  }),
});
export const collections = {
  'blog': blogCollection,
};Routing e Navigazione
Astro utilizza un sistema di routing basato sui file. Tutti i file .astro, .md o .mdx nella tua directory src/pages/ diventano automaticamente pagine sul tuo sito web:
- src/pages/index.astro→- yourdomain.com/
- src/pages/about.astro→- yourdomain.com/about
- src/pages/posts/post-1.md→- yourdomain.com/posts/post-1
Siti Web Multilingua
Astro offre vari modi per creare siti web multilingua:
- Utilizzando parametri di routing: src/pages/[lang]/about.astro
- Utilizzando Content Collections e filtrando per lingua
- Utilizzando integrazioni come astro-i18n-aut
Prossimi passi
Dopo aver imparato le basi, potresti voler:
- Creare un nuovo componente
- Aggiungere una nuova pagina
- Lavorare con Content Collections
- Configurare un blog o un portfolio
- Aggiungere un’integrazione come React o Tailwind CSS
Buon sviluppo con Astro!
