Vaadin Flow 1.0.0.beta5 is a prerelease version for evaluating the enhancements mentioned below. With subsequent beta releases we may change things based on your feedback, and that may lead to API breaking changes.
Vaadin Flow 1.0.0.beta5
Flow is a new Java web framework for creating UIs using Java or HTML. Flow handles everything related to communication between and client and server and makes it possible to create UIs using the desired abstraction level you choose. It has all the capabilities you need to build a modern web app: from high level APIs for structuring your applications and binding data to it, into taking full control over the DOM and communication with HTML templates.
Flow is a part of the Vaadin platform. For information and helpful resources like documentation and examples on Vaadin Flow, please visit the Flow page vaadin.com/flow.
Breaking changes introduced in the newest Prerelease
- #2492 Remove AngularTemplate from flow
- #3382 Rename the model converter concept to avoid confusion with Binder converters.
ModelConverter
was changed toModelEncoder
Change commit
Bug Fixes since Previous Prerelease
- #3649 Adjust cases each of the navigation observers are notified
- #3767 RadioButtonGroup is enabled when I setEnabled(false) in a grid
- #3713 Improve how the Element API deals with existing content that the server doesn't know about
- #43 Calling setText for Button appends the text to an existing caption
- #3758 Add support for @id without value
- #3628 Application run with Spring Boot Maven plugin does not discover all routes
- #3714 Mention semantic mismatch in @id javadocs
- #3741 Support JSR-356 websockets with Spring Boot
- #3648 Remove code duplication between NavigationStateRenderer and ErrorStateRenderer
- #3729 StateNode.runWhenAttached should accept SerializableConsumer
- #3042 Styling documentation is misleading
Documentation fixes
- #3042 Reword styling for getting started docs
- #3382 Update docs for ModelEncoders instead of ModelConverts
- #3347, #3042 Introduce a proper theming chapter
- #3628 Mention @route package scanning option in the docs
- #41 Extend doc for @id semantic
- #3435 Note on docs that two-way binding doesn't work for array properties
See complete list of changes since previous beta version
Supported Technologies
See the Vaadin platform release notes for browser, server and Java support level.
Known Limitations
- Template-in-Template feature has some limitations
- There is no CDI support #456
- There is no Portal/OSGi support #455
Flow 1.0 Feature Highlights
Using Components to build UIs with only Java
With Flow you to can compose UIs using only Java on the server side. You can use existing components or create your own by creating the DOM from the server side. See the relevant documentation:
Integrating Web Components
Flow allows you to integrate web components and consume them from server side Java. See the web components documentation for more information.
Router
Router is a core concept in Flow, enabling navigation for your website or web app. It is based on HTML5 History API, and makes it possible to for the user to navigate pages back and forward, and keep the page state intact. See the router documentation for more information.
Binding Data to Components
Flow allows you to easily bind your business data to the UI components. You can bind the forms to the business objects by using the Binder
, see documentation for more information. For showing a list of data (eg. a database table) on the UI, you can use the DataProvider
. See documentation for more information.
Creating UIs Declaratively with Polymer Templates
With Flow you can take full control of building the DOM and the communication by using HTML templates. We recommend using Polymer templates as they bring lots of helpful capabilities on top of the native HTML. See documentation for more information.
Theming Applications
Flow has support for customizing the look and feel of your applications with css, html custom styles or by customizing the ready made Themes provided for Vaadin Components. See the documentation for more information.
Spring Integration
Flow comes with a Spring integration, and you can use it with Spring 5 or Spring Boot 2. Please see the documentation for more information.
Getting Started
For getting started with Vaadin Flow, please see vaadin.com/start where there are three types of examples available:
- Bakery App Starter for Flow and Spring - a full stack example application with Flow and Spring Boot with heavy focus on great UX
- Beverage Buddy App Starter for Flow - a small example app that highlights the basic features of Flow
- Project Base for Flow and Project Base for Flow and Spring
- A base for your project with some placeholder files available and dependencies available
All the starters bring the Flow dependency via the Vaadin platform, which is the recommended way for using Flow.
- A base for your project with some placeholder files available and dependencies available
From Flow getting started documentation you can find a step-by-step tutorial.