Компоненты широко используются в большинстве частей Discourse. Виджеты же полезны для некоторых из самых посещаемых элементов, таких как поток сообщений темы и заголовок с его несколькими меню.
Вы часто увидите виджеты, используемые в плагинах и темах для добавления или модификации существующих виджетов.
Возьмем, к примеру, этот виджет в плагине discourse-calendar:
Это кнопка, отображаемая в оригинальном сообщении темы. Она должна быть виджетом, так как само сообщение рендерится как виджет по соображениям производительности.
НО если вы посмотрите на строки 11–17 этого файла, то увидите шаблон Handlebars, определенный в JavaScript с помощью хелпера hbs, и в этом шаблоне используются компоненты, которые рендерятся, например, как {{i18n ...}}.
Таким образом, вы можете использовать компоненты, если только элемент пользовательского интерфейса уже не рендерится как виджет. В этом случае используйте виджет. И если это имеет смысл, вы можете использовать существующие компоненты внутри виджета.