L’architettura pubblica documentata di Gatsby
Gatsby è costruito attorno a React e agli strumenti Node.js. Gli sviluppatori scrivono componenti React, mentre Gatsby coordina acquisizione dei dati, query GraphQL, creazione delle pagine, elaborazione delle risorse, raggruppamento e comportamento di rendering selezionato.
Questa descrizione riguarda l’architettura del framework documentata per i progetti Gatsby. Non deduce i sistemi di hosting privati, i servizi interni o la topologia operativa alla base di gatsbyjs.com.
Elementi fondamentali
| Livello | Ruolo documentato pubblicamente |
|---|---|
| React | Fornisce componenti, JSX, stato e interazione lato browser. |
| API Gatsby | Collegano configurazione, acquisizione dei dati, creazione dei nodi, creazione delle pagine e attività del ciclo di vita del rendering. |
| Livello dati | Normalizza i record acquisiti come nodi e li espone attraverso uno schema GraphQL. |
| Plugin sorgente | Importano contenuti da file, sistemi di contenuti, API e servizi. |
| GraphQL | Seleziona i campi acquisiti per pagine e componenti nel flusso dati di Gatsby. |
| Rendering | Supporta SSG, DSG, SSR tramite getServerData e route lato client. |
| Ecosistema di plugin | Aggiunge fonti, trasformazioni, gestione delle immagini, stili, analisi e altre integrazioni. |
Dal contenuto alla pagina
- Un plugin sorgente recupera o legge il contenuto.
- Gatsby crea nodi e costruisce il proprio schema dei dati.
- Una query di pagina richiede i campi necessari.
- Un template React renderizza il contenuto interrogato.
- Gatsby produce o serve la pagina in base alla sua modalità di rendering.
Le pagine statiche vengono generate durante la build. Le pagine differite vengono rimandate fino alla loro prima richiesta su un’infrastruttura compatibile. Le pagine SSR eseguono logica al momento della richiesta tramite getServerData. Le route lato client riservano percorsi selezionati al comportamento dell’applicazione nel browser.
L’architettura non garantisce uno specifico tempo di build, una determinata velocità delle pagine o un particolare risultato nei motori di ricerca. Tali risultati dipendono dalla latenza delle fonti, dal numero di nodi e pagine, dalla progettazione delle query, dalle immagini, da JavaScript, dalla cache, dall’hosting e dall’implementazione stessa.
