github vaadin/flow 25.1.0-beta1
Vaadin Flow 25.1.0-beta1

pre-release4 hours ago

Vaadin Flow 25.1 introduces production-ready reactive UI state management aka Signals API, along with the free browser-less testing framework (aka old commercial UI unit testing) and various other enhancements and bug-fixes.

Breaking Changes

Signal API Changes

  • Enforce signal reads in computed signals and effects
    Commit · Pull request

    Signals now enforce reactive context requirements when reading values in computed signals and effects.

  • Standardize signal callback interfaces
    Commit · Pull request

  • Move component-bound effect to Signal public API
    Commit · Pull request

  • Remove WritableSignal interface and simplify signal API
    Commit · Pull request

    Simplified the signal API by removing the WritableSignal interface and consolidating functionality.

  • Rename Signal value()/value(T) to get()/set(T)
    Commit · Pull request

    Renamed signal methods for clarity and consistency with Java conventions.

  • Restructure signals package for clarity between shared and local signals
    Commit · Pull request

  • Merge signals module into flow-server
    Commit · Pull request

    The separate signals module has been merged into flow-server for better integration.

  • Rename Binder.Binding.value() to valueSignal() and return signal
    Commit · Pull request

    Reworks Binding.value() to return a ValueSignal instead of the raw value.

  • Rename getValidationStatus() to validationStatusSignal()
    Commit · Pull request

    Renames the Binder method to better reflect that it returns a Signal.

Component and API Changes

  • Make wrapperElement field private
    Commit · Pull request

    The wrapperElement field is now private and moved to UIInternals.

  • Prevent lumo utility classes from being imported automatically
    Commit · Pull request · Issue

  • Set proper value of isFromClient when using Focusable focus() and blur()
    Commit · Pull request

    The isFromClient flag now properly reflects the origin of focus/blur events.

  • BeforeEvent target as extends Component
    Commit · Pull request

Browser Compatibility

  • Update old browser check to verify compatibility with Vaadin 25+
    Commit · Pull request · Issue

    Updated browser compatibility check to ensure Popover API availability, required for Vaadin 25 web components.

New Features

Signal-Based Reactive Programming

Component Signal Bindings

Data Binding and Validation

Data Components

  • Add protected API to regenerate data in viewport
    Commit · Pull request

    Added protected refreshViewport method to DataCommunicator and HierarchicalDataCommunicator.

  • Implement getItems(offset, limit) in DataView
    Commit · Pull request · Issue

    Added efficient query-based item retrieval with offset/limit support.

  • Add Element.flashClass() for CSS animation-based visual feedback
    Commit · Pull request

    Add a flashClass(String) method to Element that temporarily applies a CSS class to trigger an animation, then auto-removes it when the animation ends.

Browserless Testing

  • Add browserless mode flag to suppress dev server warnings in browerless tests
    Commit · Pull request

File Uploads

Spring Integration

  • Improve SpringInstantiator
    Commit · Pull request · Issue

    Better handling of multiple beans using Spring's resolution logic (Primary, Fallback, etc.).

Development Experience

Other Features

Testing Improvements

This release includes extensive migration to JUnit 5 (Jupiter) across the codebase, improving test maintainability and leveraging modern testing features.

Dependency Updates

  • Spring Boot updated to 4.0.3
  • TestBench updated to 10.1
  • Node.js updated to 24.13.1
  • Jackson BOM updated to 3.0.4
  • Byte Buddy updated to 1.18.5
  • NullAway updated to 0.13.1
  • JUnit Jupiter updated to 6.0.3
  • Various other dependency updates for security and stability

For more details, see the full comparison on GitHub.

Changes since 25.1.0-alpha14

Don't miss a new flow release

NewReleases is sending notifications on new releases.