【问题标题】:Unterstanding how Vaadin uses GWT了解 Vaadin 如何使用 GWT
【发布时间】:2011-10-30 18:31:41
【问题描述】:

在与 Vaadin 玩了大约一周之后,我很好奇 Vaadin 如何使用 GWT。 GWT 将 Javacode 编译为 Javascript。每次重新部署时都必须这样做。

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

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

所以,我的问题是:

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

【问题讨论】:

    标签: gwt plugins vaadin concept


    【解决方案1】:

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

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

    1. 使用 JDK 编译的服务器端“组件”
    2. 使用 GWT 编译的客户端“小部件”

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

    应用程序开发人员通常只使用服务器端组件来构建应用程序,他们并不真正需要关心客户端的工作方式。

    一般来说,Vaadin 的新组件可以通过两种方式开发:

    1. 组合现有组件
    2. 使用 GWT/JavaScript(+ 其他客户端技术)创建新的小部件

    这里的第一种方法使用现有的类,不需要使用 GWT 重新编译小部件。仅编译应用程序代码(使用 JDK 编译器)。但是,在第二种情况下,客户端类发生了变化,需要重新编译。这时候就需要 GWT 编译器了。

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

    GWT 编译步骤本身并没有什么特别之处。但是,Vaadin 本身包含许多对 GWT 类的添加、帮助程序和解决方法,这些 GWT 类由小部件应用和使用。

    在使用 Vaadin 插件时,所有这些都非常明显(请参阅 http://vaadin.com/directory)。即使附加组件也只是 jar 文件,如果它们包含新的客户端小部件代码,则在将它们添加到项目时需要使用 GWT 编译小部件集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 2011-05-24
      • 1970-01-01
      • 2016-02-09
      • 2012-10-06
      相关资源
      最近更新 更多