Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
React Virtualized | 24,863 | 2,728 | 1,835 | 5 months ago | 296 | April 17, 2023 | 501 | mit | JavaScript | |
React components for efficiently rendering large lists and tabular data | ||||||||||
React Window | 14,512 | 357 | 1,492 | 24 days ago | 43 | April 17, 2023 | 237 | mit | JavaScript | |
React components for efficiently rendering large lists and tabular data | ||||||||||
Af Utils | 64 | 2 months ago | 3 | mit | JavaScript | |||||
React components for rendering large scrollable data | ||||||||||
Infinite React | 57 | 12 days ago | 13 | TypeScript | ||||||
One Table — Infinite Applications. Infinite Table is the modern DataGrid for building React apps — faster. | ||||||||||
Material Ui Table With Node Mongodb Running In Gcp Also The Source Code For Gcp Blog | 34 | 2 years ago | 2 | JavaScript | ||||||
Fullstack React, Node, Mongo App to Create, Edit, Delete and render tabular data. Pagination handled in backend with mongoose-paginate. | ||||||||||
React Table | 24 | 2 years ago | 34 | January 04, 2022 | 5 | apache-2.0 | TypeScript | |||
React components for efficiently rendering large tabular data | ||||||||||
React Keyview | 16 | 5 years ago | 1 | December 02, 2018 | mit | TypeScript | ||||
React components to display the list, table, and grid, without scrolling, use the keyboard keys to navigate through the data | ||||||||||
React Data Scroller | 13 | 3 years ago | 22 | December 18, 2020 | 9 | mit | TypeScript | |||
Super fast spreadsheet data virtualization | ||||||||||
React Touchable Tabular | 4 | 8 years ago | 3 | JavaScript | ||||||
A React Component to used to view tabular data based on facebook/fixed-data-table | ||||||||||
Pandaops React | 2 | 3 years ago | JavaScript | |||||||
For viewing and editing tabular data. Using React, Pandas and Flask. |
React components for efficiently rendering large lists and tabular data
React window works by only rendering part of a large data set (just enough to fill the viewport). This helps address some common performance bottlenecks:
The following wonderful companies have sponsored react-window:
Learn more about becoming a sponsor!
# Yarn
yarn add react-window
# NPM
npm install --save react-window
Learn more at react-window.now.sh:
react-virtualized-auto-sizer
: HOC that grows to fit all of the available space and passes the width and height values to its child.react-window-infinite-loader
: Helps break large data sets down into chunks that can be just-in-time loaded as they are scrolled into view. It can also be used to create infinite loading lists (e.g. Facebook or Twitter).react-vtree
: Lightweight and flexible solution to render large tree structures (e.g., file system).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:
react-virtualized
. (It's still widely used by a lot of successful projects!)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.
Yes. I recommend using the react-virtualized-auto-sizer
package:
Here's a Code Sandbox demo.
If your list looks something like this...
...then you probably forgot to use the style
parameter! Libraries like react-window work by absolutely positioning the list items (via an inline style), so don't forget to attach it to the DOM element you render!
Yes. I recommend using the react-window-infinite-loader
package:
Here's a Code Sandbox demo.
Yes, using the outerElementType
prop.
Here's a Code Sandbox demo.
Yes, although it requires a bit of inline styling.
Here's a Code Sandbox demo.
Yes, although it requires a bit of inline styling.
Here's a Code Sandbox demo.
Yes, although it requires a small amount of user code. Here's a Code Sandbox demo.
MIT © bvaughn