# Vue GWT and Widgets
For easy backward compatibility it's possible to wrap any Vue GWT Component in a GWT Widget. For this you need to use VueGwtWidget.
# Adding the dependency
VueGwtWidget is in it's own Maven module. If you want to use it, add this Maven Dependency to your pom.xml:
<dependency> <groupId>com.axellience</groupId> <artifactId>vue-gwt-gwt2</artifactId> <version>${vue-gwt.version}</version> </dependency> And this in your gwt.xml:
<inherits name='com.axellience.vuegwt.GWT2'/> # Instantiating a DemoComponent
Let's instantiate a DemoComponent with VueGwtWidget:
GwtIndex.html
<div id="childComponentAttachPoint"></div> RootGwtApp.java
public class RootGwtApp implements EntryPoint { public void onModuleLoad() { // Create a VueGwtPanel, it's a regular GWT Widget and can be attached to any GWT Widget VueGwtWidget<DemoComponent> vueGwtWidget = new VueGwtWidget<>(DemoComponent.class); // Attach it to inside our DOM element RootPanel.get("childComponentAttachPoint").add(vueGwtWidget); } } # Accessing our Vue Instance
It's even possible to interact with our instantiated Vue.
Let's say our DemoComponent has a method increaseCounter(). We can do:
VueGwtWidget<DemoComponent> vueGwtWidget = new VueGwtWidget<>(DemoComponent.class); RootPanel.get("childComponentAttachPoint").add(vueGwtWidget); vueGwtWidget.getComponent().increaseCounter(); # Cleaning Up
If you don't need your VueGwtWidget anymore, you can destroy it's Vue instance by calling:
vueGwtWidget.getComponent().vue().$destroy();