Frontmatter
| id | 8966 |
| title | refactor: Upgrade Neo.grid.Body to Container and implement Row Pooling (#8964) |
| state | Closed |
| labels | airefactoring |
| assignees | tobiu |
| createdAt | Feb 3, 2026, 7:31 PM |
| updatedAt | Feb 3, 2026, 8:30 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8966 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8964 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 3, 2026, 8:30 PM |
refactor: Upgrade Neo.grid.Body to Container and implement Row Pooling (#8964)
tobiu added parent issue #8964 on Feb 3, 2026, 7:31 PM
tobiu assigned to @tobiu on Feb 3, 2026, 8:21 PM

tobiu
Feb 3, 2026, 8:29 PM
Input from Gemini 3 Pro:
✦ Completed
Neo.grid.Bodyrefactor.Changes:
- Extends
Neo.container.Basewithlayout: null.- Implements
createRowPoolto manage a fixed pool ofNeo.grid.Rowcomponents.- Refactors
createViewDataandupdateMountedAndVisibleRowsto recycle Row components (row.set({record, rowIndex})) instead of generating raw VDOM.- Updates
onStoreRecordChangeto target specific Row components for updates.- Maintains
_vdomwrapper structure for scrolling compatibility.Ready for #8967 (Reactive Updates) - although basic reactivity is already covered by the Row component implementation. I will verify if further work is needed for #8967 or if it can be closed.
tobiu closed this issue on Feb 3, 2026, 8:30 PM
tobiu cross-referenced by #8967 on Feb 3, 2026, 8:33 PM
Neo.grid.Bodyto extendNeo.container.Base.layout: nullto avoid layout overhead.createRowPool(size)to populatethis.itemswithNeo.grid.Rowinstances.createViewDataand scrolling logic to recycle these instances (row.set()) instead of generating raw VDOM.