Usage
VirtualizedList renders only the visible rows of a very long list to keep scroll performance acceptable—chat histories, log tails, large roster lists. Correct estimateSize and remeasurement strategy prevent scroll jank that would break operator trust in realtime systems. The mental model is "only the rows in view exist in the DOM"; this is a deliberate trade-off that affects find-in-page, keyboard navigation, and third-party DOM tools.
Scrollable with mapped children; it's simpler to debug.EmptyState pattern with a concrete next step.aria-posinset / aria-setsize or listbox patterns must remain accurate when virtualization exposes only part of the DOM.estimateSize to a real average; remeasure on dynamic content expansion.scrollReverse need explicit testing—scroll-to-bottom on new message, preserve position on history fetch.Do
Don't
Keyboard navigation must scroll items into view; focus management continues to work with windowing. Announce additions carefully in live regions—high-frequency chat may require batching. See Accessibility for the full contract.