justin
(Justin DiRose)
2
组件在 Discourse 的大多数地方被广泛使用。小部件(widgets)则在某些流量极高的元素上特别有用,例如主题帖子流以及带有多个菜单的页头。
你经常会在插件和主题中看到小部件被用来添加或修改现有小部件。
以 discourse-calendar 插件中的这个小部件为例:
这是一个渲染在主题原始帖子中的按钮。它必须是一个小部件,因为出于性能考虑,帖子本身也是以小部件形式渲染的。
但是,如果你查看该文件的第 11 到 17 行,你会看到通过 hbs 辅助函数在 JavaScript 中定义了一个 Handlebars 模板,而该模板中包含像 {{i18n ...}} 这样渲染的组件。
因此,通常你可以使用组件,除非该 UI 元素已经被渲染为小部件。在这种情况下,请使用小部件。如果合理,你可以在小部件内部利用现有的组件。
7 个赞