为啥在 Vaadin 7 中使用 CustomComponent 进行布局?

Posted

技术标签:

【中文标题】为啥在 Vaadin 7 中使用 CustomComponent 进行布局?【英文标题】:Why use CustomComponent for Layouts in Vaadin 7?为什么在 Vaadin 7 中使用 CustomComponent 进行布局? 【发布时间】:2014-11-25 16:13:18 【问题描述】:

Book of Vaadin 和 Vaadin 培训课程都建议使用com.vaadin.ui.CustomComponent 来包含布局。

我可以从纯理论上理解这一点,封装内容而无需暴露特定布局,例如 GridLayout 或 Horizo​​ntalLayout。封装有以下好处:

鼓励类之间的解耦 无需更改外部类中的声明即可更轻松地更改布局。

但就实用性而言,我假设 CustomComponent 的呈现意味着额外的 html/CSS 布局指令,例如另一个 div。 Vaadin 渲染需要的最后一件事是 HTML 结构的另一个分层。

我想知道这是否是古老的民间传说。也许在 Eclipse 中使用可视化组合工具只接受 CustomComponent 对象而不是 Layout 对象? (只是胡乱猜测,我不知道)

➤ 或者,为什么不在外部类中声明com.vaadin.ui.Layout 类型的引用变量以获得相同的封装?

➤ 我是否夸大了将 CustomComponent 添加到 Vaadin 渲染的影响?

➤ CustomComponent 还有其他一些我没有意识到的好处吗?

【问题讨论】:

【参考方案1】:

您可以使用Visual Designer 组合CustomComponent 的内容。这在开发过程中节省了大量时间

【讨论】:

【参考方案2】:

CustomLayout 的主要优点是,您可以将组件放在 HTML 代码中,否则无法通过 vaadin 方式生成。

这是否像原生布局一样添加更多 div/html 取决于具体情况。

我们通常只在纯 Vaadin 解决方案会引入更多组件/div 或无法实现时才使用它。

第二个思路是布局和逻辑的分离,用这个Layout可以部分实现。您只需指定您拥有哪些组件,然后 UI 设计师(理论上)可以制作您的 HTML 代码,并使用正确的块放置您的组件。

在现实生活中我不觉得这是一个真正的优势,因为整个 CSS、大小等都是用 vaadin 完成的。

【讨论】:

你误解了这个问题。我问的是CustomComponent 而不是CustomLayout。点击 The Book Of Vaadin 的第一个链接以获取信息。你给了一个很好的答案,但在错误的问题上。我建议您创建自己的问题并发布此答案。 *** 鼓励这样做。

以上是关于为啥在 Vaadin 7 中使用 CustomComponent 进行布局?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 spring-vaadin 忘记了我设置的 locale,但在页面刷新后突然记住了?

Vaadin 7:UI 与 Navigator+Views 的使用

Vaadin 7 在执行后台线程后不刷新 UI(仅当它需要超过 5 分钟时)

Liferay 7 和 Vaadin 8:Vaadin Shared 未激活

如何在 Vaadin 7 中制作一对单选按钮来表示 True/False 值但本地化文本?

我在Vaadin8迁移后需要Widgetset编译错误