finds.dev← search

// the find

bvaughn/react-window

★ 17,189 · TypeScript · MIT · updated Apr 2026

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.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →