Quanto differiscono un componente Ember e un widget Discourse?

I componenti sono ampiamente utilizzati nella maggior parte di Discourse. I widget risultano utili su alcuni degli elementi più trafficati, come il flusso dei messaggi di un argomento e l’intestazione con i suoi molteplici menu.

Spesso vedrai i widget utilizzati in plugin e temi per aggiungere o modificare widget esistenti.

Prendi ad esempio questo widget nel plugin discourse-calendar:

Si tratta di un pulsante renderizzato nel messaggio originale di un argomento. Deve essere un widget perché il messaggio stesso è renderizzato come widget per motivi di prestazioni.

MA se guardi alle righe 11-17 di quel file, puoi vedere un template Handlebars definito in JavaScript tramite l’helper hbs, e in quel template ci sono componenti renderizzati come {{i18n ...}}.

Quindi, in generale, puoi utilizzare i componenti a meno che l’elemento dell’interfaccia utente non sia già renderizzato come widget. In tal caso, usa un widget. E se ha senso, puoi utilizzare componenti esistenti all’interno del widget.

7 Mi Piace