Guida · Il contenuto
Le viste: elenchi dal database
Un blocco che non contiene il contenuto: contiene la domanda da fare, e disegna le risposte con la forma che gli dai.
Dove siamo
Finora ogni blocco portava il suo contenuto. Alla fine di questo capitolo avrai un elenco che si aggiorna da solo quando cambia il database, senza che nessuno tocchi la pagina.
Il gesto
Aggiungi un blocco views. Accendi useInternalSource e scegli la collection.
Imposta limit e internalSort. Nel content metti i blocchi che disegnano UN record.
Salva, ricarica. Quello che hai messo nel content si ripete per ogni risultato.
// un blocco dentro layout di una pagina, in Payload
{
"blockType": "views",
"useInternalSource": true,
"internalCollection": "pages",
"internalSort": "-createdAt",
"limit": 6
}Cos’è appena successo
Il blocco non è stato risolto una volta: è stato risolto una volta per record. Quello che hai messo nel content è un modello, e ogni risultato della query lo riempie — i dati arrivano in data, la chiave del descrittore riservata al dominio.
È la stessa separazione dei viewMode, applicata a un elenco: la forma la decidi tu una volta, quante volte disegnarla lo decide il dato. Per questo cambiare l’aspetto di una lista di sei elementi costa quanto cambiarlo per uno.
Le sorgenti esterne invecchiano a tempo
Oltre alla collection interna una vista può leggere un JSON esterno, e lì cambia una cosa: il risultato viene tenuto in cache per un tempo dichiarato, non invalidato da un salvataggio.
Vuol dire che una modifica all’origine si vede quando la cache scade, non subito. È un compromesso voluto — un sito pubblico non interroga un servizio terzo a ogni richiesta — ma va saputo prima, non scoperto dopo.
Quando non funziona
Fai puntare la vista a una collection che non c’è, o metti un internalWhere che non trova nulla. In entrambi i casi ottieni la stessa cosa: niente.
Un elenco vuoto e un elenco che non ha potuto interrogare nessuno si vedono uguali. Se una vista è vuota, prima di cercare nel where verifica che la sorgente risponda.
Avanti
Sai leggere dal database. Nel capitolo dopo ci scrivi: i form.