Gathering detailed insights and metrics for react-window
Gathering detailed insights and metrics for react-window
Gathering detailed insights and metrics for react-window
Gathering detailed insights and metrics for react-window
@types/react-window
TypeScript definitions for react-window
react-window-infinite-loader
InfiniteLoader component inspired by react-virtualized but for use with react-window
@types/react-window-infinite-loader
TypeScript definitions for react-window-infinite-loader
@fluentui/react-window-provider
Utilities for providing and consuming the window/document objects even across portal/iframe/child-window boundaries.
React components for efficiently rendering large lists and tabular data
npm install react-window
Typescript
Module System
Min. Node Version
Node Version
NPM Version
93
Supply Chain
94.1
Quality
79.3
Maintenance
100
Vulnerability
100
License
JavaScript (97.47%)
CSS (2.39%)
HTML (0.14%)
Total Downloads
354,563,329
Last Day
545,499
Last Week
2,545,945
Last Month
11,919,526
Last Year
113,359,975
MIT License
16,444 Stars
411 Commits
798 Forks
64 Watchers
8 Branches
34 Contributors
Updated on May 07, 2025
Minified
Minified + Gzipped
Latest Version
1.8.11
Package Id
react-window@1.8.11
Unpacked Size
874.82 kB
Size
182.26 kB
File Count
25
NPM Version
9.6.6
Node Version
20.2.0
Published on
Dec 17, 2024
Cumulative downloads
Total Downloads
Last Day
-3.2%
545,499
Compared to previous day
Last Week
-11.8%
2,545,945
Compared to previous week
Last Month
4.9%
11,919,526
Compared to previous month
Last Year
21.1%
113,359,975
Compared to previous year
2
38
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!
1# Yarn 2yarn add react-window 3 4# NPM 5npm 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
No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
Found 5/22 approved changesets -- score normalized to 2
Reason
0 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 1
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
Reason
project is not fuzzed
Details
Reason
Project has not signed or included provenance with any releases.
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
security policy file not detected
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
81 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-05-05
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More