在使用 Vaadin 大约一周后,我很好奇 Vaadin 如何使用 GWT。 GWT 将 Javacode 编译为 Javascript。每次重新部署时都必须执行此操作。
由于 Vaadin 必须被理解为一个以服务器为中心的框架,从而消除了编写在客户端执行的代码并将所有内容移至服务器的灵活性(这听起来比实际情况更糟糕),因此 GWT 编译器一次仅运行一次。例如,当您从 vaadin 网站导入插件时就会发生这种情况。
但这不可能那么容易,对吧?如果它只是将插件代码编译为 javascript,那么这在以前就可以完成。
所以,我的问题是:
VAADIN 什么时候使用 GWT 编译器?此时除了编译为 js 之外它还能做什么?
基本上你说得对,而且大部分都是你自己回答的。
在 Vaadin 中,用户界面组件由两部分组成:
- 使用JDK编译的服务器端“组件”
- 使用 GWT 编译的客户端“小部件”
这些部分通过 HTTP 相互通信,并根据需要自动同步其状态。服务器端部分维护用户界面组件的状态,客户端小部件呈现该状态。
应用程序开发人员通常只使用服务器端组件来构建应用程序,他们实际上不必关心客户端如何工作。
一般来说,Vaadin 的新组件可以通过两种方式开发:
- 组合现有组件
- 使用 GWT/JavaScript(+其他客户端技术)创建新的小部件
这里的第一种方法使用现有的类,不需要使用 GWT 重新编译小部件。仅编译应用程序代码(使用 JDK 编译器)。但是,在第二种情况下,客户端类发生更改并且需要重新编译。这时候就需要GWT编译器了。
由于 GWT 编译的 JavaScript 具有相当单一的性质(无论 GWT 的新代码分割功能如何,命名空间都是全局的)Vaadin 使用的概念小部件集。这是一个 GWT 模块,包含应用程序中所需的所有小部件。这意味着向应用程序添加新的(客户端)小部件需要 GWT 重新编译。在删除小部件时重新编译小部件集以优化小部件集大小也是一个很好的做法。
GWT 编译步骤本身并没有什么特别的。然而,Vaadin 本身包含许多由小部件应用和使用的 GWT 类的附加内容、帮助程序和解决方法。
当使用 Vaadin 附加组件时,所有这些都非常明显(参见http://vaadin.com/directory)。即使附加组件只是 jar 文件,如果它们包含新的客户端小部件代码,则在将它们添加到项目中时,需要使用 GWT 进行小部件集编译。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)