Skip to content

React components for efficiently rendering large lists and tabular data

License

Notifications You must be signed in to change notification settings

bvaughn/react-window

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Brian Vaughn
Dec 3, 2018
9b5a591 Â· Dec 3, 2018
Dec 3, 2018
Dec 3, 2018
May 5, 2018
Jun 8, 2018
May 5, 2018
Oct 3, 2018
Jul 22, 2018
Jun 8, 2018
May 5, 2018
Oct 3, 2018
Dec 3, 2018
Nov 5, 2018
Aug 29, 2018
Oct 1, 2018
Dec 3, 2018
Aug 29, 2018
Sep 18, 2018

Repository files navigation

react-window

React components for efficiently rendering large lists and tabular data

NPM registry Travis NPM license

Install

# Yarn
yarn add react-window

# NPM
npm install --save react-window

Usage

Learn more at react-window.now.sh.

Frequently asked questions

How is react-window different from react-virtualized?

I wrote react-virtualized several years ago. At the time, I was new to both React and the concept of windowing. Because of this, I made a few API decisions that I later came to regret. One of these was adding too many non-essential features and components. Once you add something to an open source project, removing it is pretty painful for users.

react-window is a complete rewrite of react-virtualized. I didn't try to solve as many problems or support as many use cases. Instead I focused on making the package smaller1 and faster. I also put a lot of thought into making the API (and documentation) as beginner-friendly as possible (with the caveat that windowing is still kind of an advanced use case).

If react-window provides the functionality your project needs, I would strongly recommend using it instead of react-virtualized. However if you need features that only react-virtualized provides, you have two options:

  1. Use react-virtualized. (It's still widely used by a lot of successful projects!)
  2. Create a component that decorates one of the react-window primitives and adds the functionality you need. You may even want to release this component to NPM (as its own, standalone package)! 🙂

1 - Adding a react-virtualized list to a CRA project increases the (gzipped) build size by ~33.5 KB. Adding a react-window list to a CRA project increases the (gzipped) build size by <2 KB.

License

MIT © bvaughn