github vaadin/flow 5.0.0.beta1
5.0.0.beta1 - Prerelease for Vaadin 18

latest releases: 24.6.0.alpha4, 24.5.4, 24.6.0.alpha3...
pre-release4 years ago

Vaadin Flow 5.0.0.beta1 is a prerelease of the Flow & Fusion frameworks targeted to Vaadin 18. To try it out, use the latest 18 prerelease available from the Vaadin prereleases Maven repository.

New features in 5.0 for Flow

Improved LitTemplate support

Using LitTemplate is recommended over deprecated PolymerTemplate for doing layouts with HTML and UI logic in Java. It is recommended to use TypeScript for the template and this has been updated to the examples in the documentation. Starting from Vaadin 18, the initial attribute values in the template are reflected to the server side state when @Id mapping components. This applies to PolymerTemplate too. More information on the template support in the blog.

Add HasHelper interface (#8922)

A new HasHelper interface has been added to be used for field components that have a "helper" feature (such as TextField), i.e. a slot below/above input fields for supplying additional information or content related to the field.

Supporting undefined item count for ComboBox and delaying count call until dropdown is opened

Starting from V18, ComboBox works without defining a item count query, or it can delay the count query until the drop down is opened due to changes in DataCommunicator.

Small Improvements

  • Component now has boolean isAttached() method which checks whether this component is currently attached to a UI.

New features in 5.0 for Fusion

Client-side Spring Security based authentication helpers (#8806)

Add Spring Security based authentication helpers login, logout, and an InvalidSessionMiddleWare for handling session expiration. This feature makes it easier to write a single-page application (SPA) with a custom login view.

Support TypeScript form binding with optional fields and objects (#8847)

When binding to an optional object field, the TypeScript form binder will not initialize the field with an empty value and leave it as undefined unless there are bindings to the nested fields. This feature is necessary when e.g., binding an object field to a Combobox.

Simpler CSS import for TypeScript views and CSS @import support (#8843)

This feature gives us a nice DX of importing styles to TS views like:

import styles from './list-view.css';

@customElement('list-view')
export class ListView extends LitElement {
  static styles = [Lumo, styles];

Deprecations and Incompatible Changes since 4.0

Template support related changes

Future of template support is described here: https://vaadin.com/blog/future-of-html-templates-in-vaadin
The changes in Flow 5.0 do not require changing existing LitTemplate or PolymerTemplate based components. In case you have existing workaround placed for handling the initial attribute values for template-mapped-components, those workarounds should not be needed anymore.

  • PolymerTemplate related classes are now deprecated and moved from flow-server to flow-polymer-template artifact.
  • LitTemplate related classes are now moved from flow-server to flow-lit-template artifact.
  • Uses annotation is now deprecated, because Polymer template support is deprecated.

Optional type for value property of BinderNode

The value property of BinderNode now has optionally undefined type for non-initialised optional fields.

AppShellRegistry method getTitle() is removed

It was broken and could not work. Instead, if needed, use getUI().getUIInternals().getAppShellTitle().

All Changes

All changes since 5.0.0.alpha1
All changes since 4.0

Don't miss a new flow release

NewReleases is sending notifications on new releases.