Capítulo 9 de 20
This example virtualizes fixed-height rows, fixed-width columns, and a two-axis grid. Because dimensions are known and never change, no DOM measurement is needed.
const rowVirtualizer = useVirtualizer({
count: 10000,
getScrollElement: () => parentRef.current,
estimateSize: () => 35,
overscan: 5,
})
{rowVirtualizer.getVirtualItems().map((virtualRow) => (
<div
key={virtualRow.index}
style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: `${virtualRow.size}px`,
transform: `translateY(${virtualRow.start}px)`,
}}
>
Row {virtualRow.index}
</div>
))}
overscan small enough that fixed-size rendering stays cheap.