不了解瓦丁如何使用GWT

不了解瓦丁如何使用GWT,gwt,plugins,vaadin,concept,Gwt,Plugins,Vaadin,Concept,在和瓦丁玩了大约一周之后,我很好奇瓦丁是如何使用GWT的。GWT将Java代码编译为Javascript。每次重新部署时都必须这样做 由于必须将Vaadin理解为以服务器为中心的框架,从而消除了编写在客户端执行的代码和将所有内容移动到服务器上的灵活性(这听起来比实际情况更糟),GWT编译器一次只运行一次。例如,从vaadin网站导入插件时会发生这种情况 但不会那么容易吧?如果它只是将插件的代码编译成javascript,那么它以前就可以做到这一点 所以,我的问题是: VAADIN什么时候使用GW

在和瓦丁玩了大约一周之后,我很好奇瓦丁是如何使用GWT的。GWT将Java代码编译为Javascript。每次重新部署时都必须这样做

由于必须将Vaadin理解为以服务器为中心的框架,从而消除了编写在客户端执行的代码和将所有内容移动到服务器上的灵活性(这听起来比实际情况更糟),GWT编译器一次只运行一次。例如,从vaadin网站导入插件时会发生这种情况

但不会那么容易吧?如果它只是将插件的代码编译成javascript,那么它以前就可以做到这一点

所以,我的问题是:


VAADIN什么时候使用GWT编译器?除了编译到js之外,它还能做什么?

基本上你是对的,而且大部分是你自己回答的问题

在Vaadin中,用户界面组件由两部分组成:

  • 使用JDK编译的服务器端“组件”
  • 使用GWT编译的客户端“小部件”
  • 这些部分通过HTTP相互通信,并根据需要自动同步它们的状态。服务器端部件维护用户界面组件的状态,客户端小部件呈现该状态

    应用程序开发人员通常只使用服务器端组件来构建应用程序,他们实际上不必关心客户端如何工作

    通常,可以通过两种方式开发Vaadin的新组件:

  • 组成现有组件
  • 使用GWT/JavaScript(+其他客户端技术)创建新的小部件
  • 这里的第一个方法使用现有的类,不需要使用GWT重新编译小部件。只编译应用程序代码(使用JDK编译器)。然而,在第二个场景中,客户端类发生了变化,需要重新编译。此时需要GWT编译器

    由于GWT编译的JavaScript相当单一(不管GWT的新代码拆分特性如何,名称空间都是全局的),Vaadin使用了widget set的概念。这是一个GWT模块,包含应用程序中所需的所有小部件。这意味着向应用程序添加新的(客户端)小部件需要GWT重新编译。在删除小部件时重新编译小部件集也是一种很好的做法,以优化小部件集的大小

    GWT编译步骤本身并没有什么特别之处。然而,Vaadin本身包含了大量的添加、帮助和GWT类的变通方法,这些GWT类由小部件应用和使用

    使用Vaadin附加组件时,所有这些都非常明显(请参阅)。即使是附加组件也只是jar文件,如果它们包含新的客户端小部件代码,那么当它们被添加到项目中时,就需要使用GWT编译小部件集