2011-08-19 12 views
8

Vaadinで約1週間プレイした後、VaadinがGWTをどのように使用しているか不思議です。 GWTはJavacodeをJavascriptにコンパイルします。これは、再デプロイするたびに実行する必要があります。VaadinがGWTを使用する方法を理解できない

VaadinはClientsideで実行されるコードを書く上での柔軟性を排除し、すべてをサーバーに移動する(実際より悪く聞こえる)ため、GWTコンパイラは一度だけ実行されます時間。たとえば、これはvaadinのWebサイトからプラグインをインポートするときに発生します。

しかし、それは簡単ではないでしょうか?それがプラグインのコードをjavascriptにコンパイルするだけであれば、これまでにできたことがあります。

だから、私の質問は:

ときVAADINはGWTコンパイラを使用しないと、それはJSためにコンパイル以外のその時点で何をするのでしょうか?

答えて

14

基本的には正しいと思いますが、ほとんどあなた自身が質問に答えました。 JDK

  • クライアント側を使用してコンパイル

    1. サーバ側の「構成要素」、「ウィジェット」GWT

    にこれらの部品を使用してコンパイル:ユーザ・インターフェース・コンポーネントは、2つの部分から成るがVaadinで

    HTTP経由で互いに通信し、必要に応じて自動的に状態を同期させます。サーバー側の部分はユーザーインターフェイスコンポーネントの状態を維持し、クライアント側のウィジェットはその状態をレンダリングします。

    アプリケーション開発者は通常、アプリケーションを構築するためにサーバー側のコンポーネントのみを使用し、クライアント側の仕組みを気にする必要はありません。一般的に

    、Vaadinへの新しいコンポーネントは、2つの方法で開発することができます。

    1. はGWT/JavaScriptを使用して新しいウィジェットを作成し、既存のコンポーネント
    2. (+他のクライアント側の技術に)
    を構成します

    ここでの最初の方法は、既存のクラスを使用し、GWTでウィジェットの再コンパイルを行う必要はありません。アプリケーションコードのみがコンパイルされます(JDKコンパイラを使用)。ただし、2番目のシナリオでは、クライアント側のクラスが変更され、再コンパイルが必要です。これは、GWTコンパイラが必要なときです。

    GWTでコンパイルされたJavaScript(GWTの新しいコード分割機能に関係なく、名前空間はグローバルである)というだけのモノラルな性質のため、Vaadinはウィジェットセットという概念を使用します。これは、アプリケーションに必要なすべてのウィジェットを含むGWTモジュールです。つまり、新しい(クライアント側の)ウィジェットをアプリケーションに追加すると、GWTの再コンパイルが必要になります。また、ウィジェットを削除するときにウィジェットセットを再コンパイルして、ウィジェットセットのサイズを最適化することをお勧めします。

    GWTコンパイルステップ自体は特別なものではありません。しかし、Vaadin自体には、ウィジェットによって適用され使用されるGWTクラスに対する追加機能、ヘルパー、回避策が多数含まれています。

    これは、Vaadinアドオン(http://vaadin.com/directoryを参照)を使用するときわめて目に見えます。アドオンは単なるjarファイルなので、新しいクライアントサイドウィジェットコードが含まれている場合、GWTを使用したウィジェットセットのコンパイルがプロジェクトに追加されるときに必要になります。

  • 関連する問題