In generale, il modo in cui funziona è avere "componenti" che hanno loro stessi una struttura HTML, ma permetterne il posizionamento all'interno di "celle" all'interno del modello. Ad esempio, potresti scegliere un layout con una cella grande e tre celle più piccole al di sotto di esso; potresti quindi inserire un grosso componente di scorrimento immagine nella cella grande e le immagini con didascalie nella cella sottostante. Una volta ottenuto il modello di dati, l'implementazione dei controller è relativamente banale.
Visivamente, l'esempio sopra potrebbe apparire come questo:
[ 1 ]
[ 2 ] [ 3 ] [ 4 ]
Potrebbe esserci un altro modello più semplice, qualcosa come un blog con una barra laterale:
[ 1 ] [ 2 ]
Ci sarebbero opzioni per componenti che possono essere inseriti nel modello. Ad esempio, puoi vedere un cursore immagine; un componente del blog che estrae da un campo back-end configurabile; una semplice foto con didascalia; una pubblicità. Un processo di rendering potrebbe essere simile a questo:
- Determina quale sito è stato richiesto.
- Cerca il modello per il sito.
- Cerca i componenti configurati per il sito.
- Esegui un'unione di tutti i requisiti relativi ai dati per i componenti.
- Esegui una query (o alcuni) per i requisiti dei dati.
- Fornisci i dati alle viste e rendili.
È complicato in vari modi, ma fondamentalmente non è molto diverso dal tipico rendering delle applicazioni web.