Quão diferentes são o componente Ember e o widget do Discourse?

Os componentes são amplamente utilizados na maior parte do Discourse. Os widgets são úteis em alguns dos elementos com maior tráfego, como o fluxo de postagens de tópicos e o cabeçalho com seus vários menus.

Você verá frequentemente widgets sendo usados em plugins e temas para adicionar ou modificar widgets existentes.

Por exemplo, considere este widget no plugin discourse-calendar:

Este é um botão renderizado na postagem original de um tópico. Ele precisa ser um widget porque a própria postagem é renderizada como um widget por questões de desempenho.

MAS, se você observar as linhas 11 a 17 desse arquivo, verá um modelo Handlebars definido no JavaScript por meio do assistente hbs, e nesse modelo há componentes renderizados como {{i18n ...}}.

Portanto, de modo geral, você pode usar componentes a menos que o elemento da interface do usuário já esteja renderizado como um widget. Nesse caso, use um widget. E, se fizer sentido, você pode utilizar componentes existentes dentro do widget.

7 curtidas