Astro è un framework per lo sviluppo Web pensato per la creazione di siti Internet content-driven. L'applicazione introduce un'architettura di front-end basata sul concetto di "isole". Queste ultime garantiscono un livello elevato di prestazioni presentandosi come un'alternativa ai pattern JavaScript monolitici. Vengono inoltre eliminate automaticamente tutte le componenti non essenziali per il funzionamento di un'applicazione di questo linguaggio.
Cosa sono le isole
Le isole, o component island, si basano su un approccio allo sviluppo che prevede di effettuare il rendering delle pagine HTML lato server. Vengono poi iniettati dei segnaposto (placeholder) o slot intorno a regioni altamente dinamiche. Queste ultime possono essere "idratate" nel client all'interno di widget self-contained, riutilizzando l'HTML inizialmente restituito dal server. Tale tecnica prende il nome di idratazione parziale o idratazione selettiva.
Parliamo di un approccio ideato in pieno contrasto con quanto previsto dalla maggior parte dei Web framework JavaScript. Di solito infatti questi ultimi idratano e restituiscono in output siti Web sotto forma di applicazioni JavaScript, o SPA (single-page application), di grandi dimensioni. In Astro, invece, ciascuna isola fa riferimento ad un componente interattivo specifico dell'interfaccia utente di una pagina Internet.
Astro 4.0 is here! Introducing the Astro Dev Toolbar — your new companion for local development. Inspect, audit, and extend your dev environment in the browser.
Plus: ⚡️ 80% faster builds, 🌐 i18n routing, 🪄 View Transition updates and more!https://t.co/jjtnQNB9L8
— Astro (@astrodotbuild) December 5, 2023
A ciò si aggiunge il fatto che la medesima pagina può ospitare più isole e ciascuna isola esiste come elemento (appunto) isolato rispetto alle altre isole. Esse possono avere uno stato e comunicare tra loro anche quando operano in contesti differenti.
Sviluppare con Astro
La flessibilità del pattern architetturale basato sulle isole permette ad Astro di supportare diversi altri Web framework tra cui anche React e Vue. Questo significa che lo sviluppatore è libero di sceglie il framework che più si adatta a ciascun componente. Si può inoltre imparare ad utilizzare un nuovo framework senza dover iniziare un progetto da zero ed è possibile collaborare con altri coder che utilizzano framework differenti.
Vi è infine la possibilità di convertire un sito Web scritto in un determinato framework in un altro framework senza alcuna interruzione di servizio.