Wie unterscheiden sich Ember-Komponenten und Discourse-Widgets?

Komponenten werden in den meisten Bereichen von Discourse weit verbreitet eingesetzt. Widgets sind dort nützlich, wo es sich um einige unserer am stärksten frequentierten Elemente handelt, wie etwa den Themen-Beitragsstrom und die Kopfzeile mit ihren mehreren Menüs.

Oft werden Widgets in Plugins und Themes verwendet, um bestehende Widgets zu erweitern oder zu modifizieren.

Nehmen wir zum Beispiel dieses Widget im discourse-calendar-Plugin:

Dies ist eine Schaltfläche, die im Originalbeitrag eines Themas gerendert wird. Sie muss ein Widget sein, da der Beitrag selbst aus Leistungsgründen als Widget gerendert wird.

ABER: Wenn Sie sich die Zeilen 11–17 dieser Datei ansehen, sehen Sie ein Handlebars-Template, das über den hbs-Helper in JavaScript definiert ist. In diesem Template werden Komponenten wie {{i18n ...}} gerendert.

Im Allgemeinen können Sie Komponenten verwenden, es sei denn, das UI-Element wird bereits als Widget gerendert. In diesem Fall verwenden Sie ein Widget. Und falls sinnvoll, können Sie bestehende Komponenten innerhalb des Widgets nutzen.

7 „Gefällt mir“