// the find
bvaughn/react-window
React components for efficiently rendering large lists and tabular data
react-window is a virtualization library for React that renders only the visible portion of large lists and grids, keeping the DOM small regardless of dataset size. This is a v2 rewrite by Brian Vaughn (former React core team), built from scratch with TypeScript and modern React patterns. If you're rendering thousands of rows in a React app, this is the go-to solution.
The API is cleaner than v1 — passing data through `rowProps`/`cellProps` instead of the closure-per-item pattern eliminates the stale closure bugs that bit people constantly. Dynamic row heights via `useDynamicRowHeight` are first-class rather than bolted on. The test infrastructure is serious: Playwright integration tests across Next.js and Vike setups catch layout-shift regressions that unit tests would miss entirely. RTL support is handled properly at the scroll offset level, not as a cosmetic afterthought.
Grid explicitly requires predetermined cell sizes — dynamic column widths aren't supported, which rules it out for anything resembling a spreadsheet with variable content. The library has no built-in support for sticky headers or frozen columns, which almost every real data grid needs; you're left wiring those yourself. No horizontal virtualization for lists, only grids. The v2 rewrite is relatively new so the ecosystem of wrappers and recipes from v1 (infinite scroll patterns, drag-and-drop integration) hasn't caught up yet.