我试图理解 GWT 中的 UIBinder 概念。我在网上浏览了几个教程。这是我的问题:
1)为什么要使用UIBinder?仅仅是因为我们将编写更少的代码并像直接编写 javascript 一样进行开发吗?
2) 有没有什么可以通过使用 UiBinder 完成而 GWT 无法完成的事情,反之亦然?
我浏览了这个链接,它提供了一个直接的讨论。还有什么其他观点或建议吗?
提前致谢。
GWT 在创建 DOM 的过程中最大的优势是UiBinders,也称为“<strong>Declarative Layout”。
UiBinders 为您提供了一种使用传统 HTML 和 CSS 而不是以编程方式在 java 中声明应用程序和小部件布局的方法。这为您提供了一种更丰富的方式来创建您的应用程序。
浏览器通过将大的 HTML 字符串塞入 innerHTML 属性来构建 DOM 结构比通过一堆 API 调用更好。UiBinder很自然地利用了这一点,结果是构建你的应用程序最愉快的方式也是构建它的最佳方式。
UiBinder是一个框架,旨在分离用户界面的功能和视图。
UiBinder 框架允许开发人员将 gwt 应用程序构建为 HTML 页面,并在其中配置 GWT 小部件。
UIBinder 提供了一种定义用户界面的声明方式。
UIBinder 将程序逻辑与 UI 分开。
UIBinder 类似于 JSP 之于 Servlet。
这是一个例子,说明 UIBInder 如何比传统的 java 代码更有优势。
提出您的问题(这些是在我开发时观察到的)
如果您熟悉 HTMl 和 CSS,您可以简单地layout
了解那里的结构(在模板中的意思ui.xml
),并且可以简单地使用 GWT。这减少了您的编译时间。
同样,您可以简单地在 xml 中编写标记并应用样式和其他 DOM 属性,而在 java 代码中您必须编写代码行数(至少 2 到 3 行)准备具有样式和特定 DOM 属性的小部件.
根据我的经验,我最近在这里总结了几点。 http://codeinventions.blogspot.in/2014/07/why-to-use-uibinder-in-gwt.html
仅基于 Java 的布局的问题
• 难以用Java 格式化HTML – 想想servlet 与JSP – 基于HTML 的布局通常不够动态 • 如果是,就使用它!• 很难将布局可视化——通过查看 Java 代码不容易看到最终结果 • 很难有效地让图形 UI 网页设计师参与进来——他们通常不了解 Java——即使你设法将设计融入 Java,它也是难以维护
UiBinder:主要思想
• 使用 XML 文件来布置内容块 – 可以表示 HTML 或小部件 • 制作表示该内容块的 Java 类 – 涉及一些过于详细的步骤,但 Eclipse 具有自动制作大部分内容的快捷方式 • 使用主应用程序中的 Java 类 – 如果 class 代表 HTML,则使用 GWT DOM API 插入 – 如果 class 代表 Widget,则使用普通的“add”方法插入它
UiBinder 的优点 • 可以使用 HTML – 或类似 HTML 的 XML 制作复杂的页面布局 • 类似于将 JSP 添加到纯 servlet 应用程序 • 更易于维护 • 图形 Web 设计人员可以参与从初始设计到维护 – 易于从常规 HTML 和逐渐“加入” GWT 绑定 • 关注点分离——UI 的美学和功能不再混杂在一起 • XML 和 Java 之间甚至 XML 本身内部交叉引用的编译时检查
• 更好的浏览器性能– 浏览器在将长字符串填充到元素的innerHTML 中非常快 • 在执行JavaScript API 时没那么快– 教训:尽可能使用常规HTML!– UiBinder的目标:让更简单的选择成为正确的选择