---
tagName: 10.2.0
name: 'Stabilization, DX Improvements & Template PoC'
publishedAt: '2025-07-30T11:27:54Z'
isPrerelease: false
isDraft: false
---
# Stabilization, DX Improvements & Template PoC

# Neo.mjs v10.2.0 Release Notes

## Introduction

Following the major architectural changes in v10.0.0 with the new core and state provider, v10.2.0 is focused on stabilization, refinement, and developer experience. This release adjusts our demonstration applications to the new architecture, fixes key regressions in the single and multi-window Covid apps, and polishes the Big Data Grid example.

A key highlight is the introduction of an early-stage proof-of-concept for string-based VDOM templates, offering a more intuitive way to build functional components.

## Key Changes

### New Features & Enhancements

- **PoC: String-Based VDOM Templates**: An initial proof-of-concept for using tagged template literals to define VDOM in functional components has been introduced. This feature can be enabled via the `enableHtmlTemplates` config and provides a more familiar, HTML-like syntax for building component views. See commit `a3bbca76653ffc822a102e9bde76dea3d8e7bb8b`.

- **Synchronous `fireChangeEvent`**: The `fireChangeEvent` method in `ComboBox` and other form fields is now fully synchronous. This resolves critical timing issues in applications like the Covid tracker, where dependent logic needs to execute immediately after a value changes to ensure state consistency. See issue [#7129](https://github.com/neomjs/neo/issues/7129).

- **Optimized ComboBox Selection**: The `afterSetValue` logic for single-select `ComboBox` fields has been optimized to prevent unnecessary processing when the selection has not changed, improving performance. See issue [#7125](https://github.com/neomjs/neo/issues/7125).

- **Refined StateProvider Logic**: The `StateProvider` change notification logic has been improved to be more precise, preventing unnecessary component updates and ensuring a more efficient data flow. See issue [#7124](https://github.com/neomjs/neo/issues/7124).

### Bug Fixes

- **Form Field Value Sequencing**: Addressed a bug related to the sequencing of `afterSetValue` calls in form fields, ensuring that values are processed in the correct order. See issue [#7127](https://github.com/neomjs/neo/issues/7127).

- **Big Data Grid Example**: Fixed an issue in the Big Data Grid example where dropdowns in the controls container were not showing their initial values correctly. See issue [#7126](https://github.com/neomjs/neo/issues/7126).

- **Covid App Regression**: Fixed a regression bug in the Covid app that caused an infinite selection loop when choosing a country from the header dropdown. See issue [#7123](https://github.com/neomjs/neo/issues/7123).

- **SharedCovid App Regression**: Resolved a regression bug in the SharedCovid app where clicking on a table row would throw an error. See issue [#7122](https://github.com/neomjs/neo/issues/7122).

- **State Provider Feedback Loop**: Added a new test case to prevent feedback loops within the `StateProvider`, enhancing its reliability. See issue [#7128](https://github.com/neomjs/neo/issues/7128).

All changes combined into 1 commit: https://github.com/neomjs/neo/commit/95f9e75a1973a1415c0573753c080ef668c5d3db
