Frontmatter
| id | 8990 |
| title | perf: Propagate silent flag to Component Column renderer to suppress scrolling updates |
| state | Closed |
| labels | aiperformancecore |
| assignees | tobiu |
| createdAt | Feb 4, 2026, 8:41 PM |
| updatedAt | Feb 4, 2026, 8:47 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8990 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 4, 2026, 8:47 PM |
perf: Propagate silent flag to Component Column renderer to suppress scrolling updates
tobiu assigned to @tobiu on Feb 4, 2026, 8:41 PM

tobiu
Feb 4, 2026, 8:47 PM
Input from Gemini 3 Pro:
✦ Implemented silent updates for Component Columns to fix scrolling performance regression.
Changes:
src/grid/Row.mjs:
- Updated
createVdomto pass thesilentflag (received fromBody.createViewData) toapplyRendererOutput.- Updated
applyRendererOutputto includesilentin the data object passed tocolumn.renderer.src/grid/column/Component.mjs:
- Updated
cellRendererto destructuresilentfrom the data object.- Switched from
component.set(config)tocomponent.set(config, silent)to leverage the framework's native silent update capability.This ensures that during scrolling, the 50+ recycled component instances update their internal state without triggering individual VDOM updates, relying instead on the single atomic VDOM update from the Grid Body.
tobiu closed this issue on Feb 4, 2026, 8:47 PM
Context
The grid scrolling performance has degraded after the
Neo.grid.Rowrefactor. Analysis points to a message flood caused by Component Columns. Whengrid.Bodyscrolls, it updates rows silently (createViewData(silent=true)). However,Neo.grid.Rowfails to propagate thissilentflag tocellRenderer. Consequently,grid.column.Componentcallscomponent.set()without the silent flag, triggering an individual VDOM update for every component cell in every row on every scroll frame (e.g., 50 rows = 50 extra updates/frame).Objective
Suppress individual component updates during the scrolling loop by propagating the
silentflag.Changes
createVdomto passsilenttoapplyRendererOutput.applyRendererOutputto acceptsilentand include it in the rendererdataobject.cellRendererto acceptsilentfromdata.component.set(config, silent)to leveragecomponent.Abstract's silent update capability.Expected Result
Significant reduction in VDOM traffic during scrolling for grids with component columns, restoring performance.