为啥在 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 或 HorizontalLayout。封装有以下好处:
鼓励类之间的解耦 无需更改外部类中的声明即可更轻松地更改布局。但就实用性而言,我假设 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 未激活