Problem
Large lists (1000+ items) cause performance issues in Tama because all items are inflated into the DOM. There's no built-in virtual scrolling solution.
Proposed Solution
A @denshya/virtual package or built-in VirtualList component that:
- Renders only visible items
- Supports variable height items
- Handles scroll events efficiently
- Provides smooth scrolling experience
Example API
import { VirtualList } from "@denshya/virtual"
function BigList() {
const items = new StateArray(generateItems(10000))
return (
<VirtualList
items={items}
height={400}
itemHeight={50}
renderItem={(item) => (
<div className="item">{item.name}</div>
)}
/>
)
}
Workaround
Currently requires manual implementation with scroll tracking and calculated ranges. See denshya-virtual-list-example experiment.
Priority
Medium — Important for performance but can be built in userland.
Problem
Large lists (1000+ items) cause performance issues in Tama because all items are inflated into the DOM. There's no built-in virtual scrolling solution.
Proposed Solution
A
@denshya/virtualpackage or built-inVirtualListcomponent that:Example API
Workaround
Currently requires manual implementation with scroll tracking and calculated ranges. See
denshya-virtual-list-exampleexperiment.Priority
Medium — Important for performance but can be built in userland.