Los componentes se utilizan ampliamente en la mayor parte de Discourse. Los widgets resultan útiles en algunos de los elementos con más tráfico, como el flujo de publicaciones de los temas y la cabecera con sus múltiples menús.
A menudo verás que los plugins y temas utilizan widgets para añadir o modificar widgets existentes.
Por ejemplo, considera este widget del plugin discourse-calendar:
Se trata de un botón renderizado en la publicación original de un tema. Necesita ser un widget porque la propia publicación se renderiza como un widget por razones de rendimiento.
PERO si observas las líneas 11-17 de ese archivo, verás una plantilla Handlebars definida en JavaScript mediante el helper hbs, y en esa plantilla hay componentes que se renderizan como {{i18n ...}}.
Por lo general, puedes usar componentes a menos que el elemento de la interfaz de usuario ya esté renderizado como un widget. En ese caso, utiliza un widget. Y si tiene sentido, puedes aprovechar componentes existentes dentro del widget.