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
enableHtmlTemplatesconfig and provides a more familiar, HTML-like syntax for building component views. See commita3bbca76653ffc822a102e9bde76dea3d8e7bb8b. -
Synchronous
fireChangeEvent: ThefireChangeEventmethod inComboBoxand 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. -
Optimized ComboBox Selection: The
afterSetValuelogic for single-selectComboBoxfields has been optimized to prevent unnecessary processing when the selection has not changed, improving performance. See issue #7125. -
Refined StateProvider Logic: The
StateProviderchange notification logic has been improved to be more precise, preventing unnecessary component updates and ensuring a more efficient data flow. See issue #7124.
Bug Fixes
-
Form Field Value Sequencing: Addressed a bug related to the sequencing of
afterSetValuecalls in form fields, ensuring that values are processed in the correct order. See issue #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.
-
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.
-
SharedCovid App Regression: Resolved a regression bug in the SharedCovid app where clicking on a table row would throw an error. See issue #7122.
-
State Provider Feedback Loop: Added a new test case to prevent feedback loops within the
StateProvider, enhancing its reliability. See issue #7128.
All changes combined into 1 commit: 95f9e75