Guida · Estendere
Un componente tuo nel registro
Una riga in un oggetto. Da quel momento un viewMode può nominarlo, e il motore lo disegna come disegna i suoi.
Dove siamo
Hai visto che un viewMode nomina un componente per chiave. Alla fine di questo capitolo quella chiave potrà essere tua.
Il gesto
Apri src/uimsContext.ts. C’è un oggetto con i componenti del pacchetto.
Aggiungi il tuo accanto agli altri.
Crea un viewMode che lo nomina in component. Ricarica.
const uiComponents = { ...uimsComponents, MiaCard }Cos’è appena successo
Il registro è una mappa da nome a componente, e il motore non sa nient’altro di quello che ci metti. Per questo aggiungerne uno non richiede di toccare il pacchetto: il punto di estensione è un oggetto nel progetto, non un file da modificare a monte.
Il contratto è il descrittore: il tuo componente riceve { ui, slots, items, data } come tutti gli altri. ui porta le classi e il tag decisi dal viewMode, slots i figli già renderizzati per apertura, data i dati di dominio.
Rispettare quel contratto è ciò che rende il tuo componente indistinguibile dagli altri: può essere vestito da viewMode diversi, ricevere slot, ed essere sostituito senza che chi lo cita se ne accorga.
Quando non funziona
Registra il componente e scrivi male la chiave nel viewMode. Il resolver non trova il componente e il blocco cade sul fallback.
Se invece ignori slots dentro il componente, i figli esistono e non compaiono: sono stati renderizzati e consegnati a un componente che non li dispone.
Avanti
Puoi disegnare cose tue. Nel capitolo dopo decidi tu come un tipo di blocco diventa un descrittore.