Skip to content

perf(grid): Optimize VDOM generation in Row.updateContent #9156

@tobiu

Description

@tobiu

Currently, Neo.grid.Body.createViewData calls updateContent on all visible rows during every scroll tick.
Neo.grid.Row.updateContent unconditionally calls createVdom, even if the record and row index are identical.
This results in thousands of unnecessary VDOM re-generations and cellRenderer executions (e.g., Component columns) during simple scrolling.

Changes:

  1. Neo.grid.Row: Update updateContent to accept a force flag. Skip createVdom if !force, record, and rowIndex are unchanged.
  2. Neo.grid.Body:
    • Update createViewData to accept force.
    • Track lastMountedColumns to auto-detect if horizontal scrolling/resizing requires a forced update.
    • Pass force to row.updateContent.
  3. Review Triggers: Ensure other config changes (like commitsOnly in DevIndex) properly trigger a forced update.

Metadata

Metadata

Assignees

Labels

aibugSomething isn't workingperformancePerformance improvements and optimizations

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions