Blog ❯ Autore: |Data: Invalid date

Introduzione
Nel precedente articolo abbiamo creato la struttura del nostro blog. È molto scarno: ha una sola pagina, ovvero la home page, il cui contenuto comprende solo testo. In questo articolo vedremo come aggiungere pagine, anche con immagini e collegamenti, e come navigare tra di esse.Creazione di pagine
Gatsby offre più modalità per la creazione di pagine. In questa circostanza, vedremo due possibilità:- - manualmente, ovvero tramite la creazione di un componente React (lo vedremo in questo articolo);
- - attraverso l'automatismo offerto dalla API createPages (sarà oggetto di un prossimo articolo).
Aggiunta di una pagina con processo manuale
È sufficiente creare un componente React all'interno della directory src/pages. Qui troviamo già il primo , e per ora unico, componente corrispondente all'unica pagina del nostro blog, index.js.Creiamo un file e lo chiamiamo about.js in cui andremo a mettere i nostri dati (nome, cognome, professione) insieme alle informazioni di contatto (e-mail, siti web):

All'interno del file about.js copiamo il codice che definisce il componente About:Facciamo partire il server di sviluppo con il comando:e navighiamo all'indirizzo:La pagina visualizzata è:

Attenzione
Se la pagina About non viene visualizzata, occorre fermare il server di sviluppo con CTRL + C nella finestra del terminale, eseguire il comando:quindi far ripartire il server di sviluppo con:Il comando gatsby clean pulisce il contenuto delle directory .cache e public.Allo stato attuale, la pagina About può essere raggiunta solo attraverso l'url completo.
Per avere la navigazione tra la home page (index.js) e la pagina di about (about.js), inseriamo un link tra le due pagine.
Gatsby mette a disposizione un componente nativo (Link) per la navigazione tra le pagine del sito (navigazione interna). Questo componente deve essere utilizzato solo per la navigazione delle pagine interne al sito. Per collegamenti a URL esterni, si deve utilizzare il consueto tag <a>.
Nota
Il componente Link è ottimizzato in modo da caricare solo le parti della pagina di destinazione che sono variate rispetto alla pagina di partenza.Per questo motivo, il passaggio da una pagina all'altra è molto veloce, a differenza dal tag <a> che carica l'intera pagina di destinazione.
Per utilizzare il componente Link, nel file index.js inseriamo queste linee di codice:Le linee aggiunte sono quella per l'import del componente Link e quella con cui definiamo il collegamento con la pagina di About.
Aggiunta di immagini
Arricchiamo la pagina di About con un'immagine, ad esempio quella scaricabile da questo link.Dopo aver scaricato l'immagine, la rinominiamo in "notebook.jpg", creiamo la directory static nella root del nostro sito (allo stesso livello della directory src), creiamo la subdirectory images dentro static e, infine, copiamo l'immagine scaricata nella directory /static/images/:

Nota
Ogni file presente nella directory static sarà copiato dentro la directory public durante il processo di build.Nel nostro caso, il file "notebook.jpg" sarà copiato in "public/notebook.jpg".
Modifichiamo il file about.js e aggiungiamo il codice per includere l'immagine utilizzando il tag <img>:
Questa è la nuova pagina di about:

Se provate a ridimensionare la finestra del browser, vedrete che l'immagine non varia le proprie dimensioni.
Nota
Anziché specificare il valore di src direttamente all'interno del tag img, si consiglia di utilizzare import per ottenere l'URL delle risorse:Per una migliore gestione delle immagini in Gatsby, possiamo utilizzare il componente StaticImage messo a disposizione dal plugin gatsby-plugin-image. Questo componente permette di caricare le immagini in modalità "lazy"; inoltre, le immagini più grandi sono ridimensionate in automatico.
Per poter utilizzare questo componente, è necessario installare il plugin gatsby-plugin-image. Questo plugin genera più versioni della stessa immagine da utilizzare in differenti scenari o dispositivi.
Vediamo gli step che servono per utilizzare questo componente:
- - creiamo la directory images dentro la directory src: in questa directory ci saranno tutte le immagini che vogliamo gestire con il plugin gatsby-plugin-image
- - installiamo il plugin gatsby-plugin-image con il comando:
- - configuriamo il plugin: nel file gatsby-config.js, aggiornando il contenuto della sezione plugins con:
- - verificare che nel file package.json ci siano le dipendenze per questi plugin, ovvero nella sezione dependencies devono essere presenti questi moduli:
- - "gatsby-plugin-image": "^2.10.1",
- - "gatsby-plugin-sharp": "^4.10.2",
- - "gatsby-source-filesystem": "^4.10.1",
- - "gatsby-transformer-sharp": "^4.10.0",
A questo punto, possiamo utilizzare il componente StaticImage all'interno della pagina di About. Per fare ciò, aggiorniamo il contenuto del file about.js con questo codice:
Anche in questo caso, come già abbiamo visto per il componente Link, le linee aggiunte sono quella per l'import del componente StaticImage e quella con cui definiamo le proprietà dell'immagine tramite il tag <StaticImage>. Nell'esempio, l'immagine del notebook viene visualizzata in modo da occupare in larghezza tutta l'area disponibile nella finestra del browser ma, a differenza del tag <img> visto prima, l'immagine è responsive, ovvero viene ridotta o ingrandita con il ridimensionamento della finestra del browser:
