{"id":13400590,"url":"https://github.com/bvaughn/react-virtualized","last_synced_at":"2025-09-09T20:13:26.128Z","repository":{"id":37550054,"uuid":"45431898","full_name":"bvaughn/react-virtualized","owner":"bvaughn","description":"React components for efficiently rendering large lists and tabular data","archived":false,"fork":false,"pushed_at":"2025-01-20T21:42:24.000Z","size":48767,"stargazers_count":26761,"open_issues_count":2,"forks_count":3070,"subscribers_count":224,"default_branch":"master","last_synced_at":"2025-05-05T09:52:46.304Z","etag":null,"topics":["grid","list","listview","performance","react","react-components","tabular-data","virtualization","windowing"],"latest_commit_sha":null,"homepage":"http://bvaughn.github.io/react-virtualized/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bvaughn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"bvaughn","patreon":null,"open_collective":"brianvaughn","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"bvaughn","custom":null}},"created_at":"2015-11-03T00:48:07.000Z","updated_at":"2025-05-05T06:28:36.000Z","dependencies_parsed_at":"2022-07-14T07:10:31.743Z","dependency_job_id":"90213aec-642b-43ed-9616-db39aebd5c23","html_url":"https://github.com/bvaughn/react-virtualized","commit_stats":{"total_commits":1647,"total_committers":224,"mean_commits":7.352678571428571,"dds":0.5069823922282939,"last_synced_commit":"2f6ff33dd9ce5b149a2767144a847f1705fb7bc0"},"previous_names":[],"tags_count":205,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bvaughn%2Freact-virtualized","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bvaughn%2Freact-virtualized/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bvaughn%2Freact-virtualized/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bvaughn%2Freact-virtualized/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bvaughn","download_url":"https://codeload.github.com/bvaughn/react-virtualized/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252486917,"owners_count":21755835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grid","list","listview","performance","react","react-components","tabular-data","virtualization","windowing"],"created_at":"2024-07-30T19:00:53.642Z","updated_at":"2025-05-05T12:33:38.368Z","avatar_url":"https://github.com/bvaughn.png","language":"JavaScript","readme":"[\u003cimg src=\"https://cloud.githubusercontent.com/assets/29597/11737732/0ca1e55e-9f91-11e5-97f3-098f2f8ed866.png\" alt=\"React virtualized\" data-canonical-src=\"https://cloud.githubusercontent.com/assets/29597/11737732/0ca1e55e-9f91-11e5-97f3-098f2f8ed866.png\" width=\"330\" height=\"100\" /\u003e](http://bvaughn.github.io/react-virtualized/)\n\nReact components for efficiently rendering large lists and tabular data.\nCheck out [the demo](https://bvaughn.github.io/react-virtualized/) for some examples.\n\n### If you like this project, 🎉 [become a sponsor](https://github.com/sponsors/bvaughn/) or ☕ [buy me a coffee](http://givebrian.coffee/)\n\n### Sponsors\n\nThe following wonderful companies have sponsored react-virtualized:\n\n\u003ca href=\"https://www.treasuredata.com/\"\u003e\u003cimg width=\"64\" height=\"64\" title=\"Treasure Data\" src=\"https://cloud.githubusercontent.com/assets/29597/17391516/962647f8-59cb-11e6-83be-aa1bac299dd0.png\"\u003e\u003c/a\u003e\n\u003ca href=\"https://developer.hpe.com/\"\u003e\u003cimg width=\"64\" height=\"64\" title=\"HPE Dev\" src=\"https://user-images.githubusercontent.com/5983843/37311298-1c3a711a-261d-11e8-9129-ef1589d7063f.png\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/9/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/10/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/10/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/11/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/11/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/12/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/12/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/13/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/13/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/14/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/14/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/15/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/15/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/16/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/16/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/17/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/17/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/18/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/18/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/19/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/19/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/20/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/20/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/21/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/21/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/22/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/22/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/23/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/23/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/24/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/24/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/25/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/25/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/26/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/26/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/27/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/27/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/28/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/28/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/sponsor/29/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/sponsor/29/avatar.svg\"\u003e\u003c/a\u003e\n\n[Learn more about becoming a sponsor!](https://opencollective.com/react-virtualized#sponsor)\n\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/9/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/10/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/10/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/11/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/11/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/12/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/12/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/13/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/13/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/14/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/14/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/15/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/15/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/16/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/16/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/17/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/17/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/18/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/18/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/19/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/19/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/20/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/20/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/21/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/21/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/22/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/22/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/23/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/23/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/24/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/24/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/25/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/25/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/26/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/26/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/27/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/27/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/28/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/28/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/react-virtualized/backer/29/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/react-virtualized/backer/29/avatar.svg\"\u003e\u003c/a\u003e\n\n## A word about `react-window`\n\nIf you're considering adding `react-virtualized` to a project, take a look at [`react-window`](https://github.com/bvaughn/react-window) as a possible lighter-weight alternative. [Learn more about how the two libraries compare here.](https://github.com/bvaughn/react-window#how-is-react-window-different-from-react-virtualized)\n\n## Getting started\n\nInstall `react-virtualized` using npm.\n\n```shell\nnpm install react-virtualized --save\n```\n\nES6, CommonJS, and UMD builds are available with each distribution.\nFor example:\n\n```js\n// Most of react-virtualized's styles are functional (eg position, size).\n// Functional styles are applied directly to DOM elements.\n// The Table component ships with a few presentational styles as well.\n// They are optional, but if you want them you will need to also import the CSS file.\n// This only needs to be done once; probably during your application's bootstrapping process.\nimport 'react-virtualized/styles.css';\n\n// You can import any component you want as a named export from 'react-virtualized', eg\nimport {Column, Table} from 'react-virtualized';\n\n// But if you only use a few react-virtualized components,\n// And you're concerned about increasing your application's bundle size,\n// You can directly import only the components you need, like so:\nimport AutoSizer from 'react-virtualized/dist/commonjs/AutoSizer';\nimport List from 'react-virtualized/dist/commonjs/List';\n```\n\nNote webpack 4 makes this optimization itself, see the [documentation](https://webpack.js.org/guides/tree-shaking/#mark-the-file-as-side-effect-free).\n\nIf the above syntax looks too cumbersome, or you import react-virtualized components from a lot of places, you can also configure a Webpack alias. For example:\n\n```js\n// Partial webpack.config.js\n{\n  alias: {\n    'react-virtualized/List': 'react-virtualized/dist/es/List',\n  },\n  ...rest\n}\n```\n\nThen you can just import like so:\n\n```js\nimport List from 'react-virtualized/List';\n\n// Now you can use \u003cList {...props} /\u003e\n```\n\nYou can also use a global-friendly UMD build:\n\n```html\n\u003clink rel=\"stylesheet\" href=\"path-to-react-virtualized/styles.css\" /\u003e\n\u003cscript src=\"path-to-react-virtualized/dist/umd/react-virtualized.js\"\u003e\u003c/script\u003e\n```\n\nNow you're ready to start using the components.\nYou can learn more about which components react-virtualized has to offer [below](#documentation).\n\n## Dependencies\n\nReact Virtualized has very few dependencies and most are managed by NPM automatically.\nHowever the following peer dependencies must be specified by your project in order to avoid version conflicts:\n[`react`](https://www.npmjs.com/package/react),\n[`react-dom`](https://www.npmjs.com/package/react-dom).\nNPM will not automatically install these for you but it will show you a warning message with instructions on how to install them.\n\n## Pure Components\n\nBy default all react-virtualized components use [`shallowCompare`](https://facebook.github.io/react/docs/shallow-compare.html) to avoid re-rendering unless props or state has changed.\nThis occasionally confuses users when a collection's data changes (eg `['a','b','c']` =\u003e `['d','e','f']`) but props do not (eg `array.length`).\n\nThe solution to this is to let react-virtualized know that something external has changed.\nThis can be done a couple of different ways.\n\n###### Pass-thru props\n\nThe `shallowCompare` method will detect changes to any props, even if they aren't declared as `propTypes`.\nThis means you can also pass through additional properties that affect cell rendering to ensure changes are detected.\nFor example, if you're using `List` to render a list of items that may be re-sorted after initial render- react-virtualized would not normally detect the sort operation because none of the properties it deals with change.\nHowever you can pass through the additional sort property to trigger a re-render.\nFor example:\n\n```js\n\u003cList {...listProps} sortBy={sortBy} /\u003e\n```\n\n###### Public methods\n\n`Grid` and `Collection` components can be forcefully re-rendered using [`forceUpdate`](https://facebook.github.io/react/docs/component-api.html#forceupdate).\nFor `Table` and `List`, you'll need to call [`forceUpdateGrid`](https://github.com/bvaughn/react-virtualized/blob/master/docs/Table.md#forceupdategrid) to ensure that the inner `Grid` is also updated. For `MultiGrid`, you'll need to call [`forceUpdateGrids`](https://github.com/bvaughn/react-virtualized/blob/master/docs/MultiGrid.md#forceupdategrids) to ensure that the inner `Grid`s are updated.\n\n## Documentation\n\nAPI documentation available [here](docs/README.md).\n\nThere are also a couple of how-to guides:\n\n- [Customizing classes and styles](docs/customizingStyles.md)\n- [Displaying items in reverse order](docs/reverseList.md)\n- [Using AutoSizer](docs/usingAutoSizer.md)\n- [Creating an infinite-loading list](docs/creatingAnInfiniteLoadingList.md)\n- [Natural sort Table](docs/tableWithNaturalSort.md)\n- [Sorting a Table by multiple columns](docs/multiColumnSortTable.md)\n\n## Examples\n\nExamples for each component can be seen in [the documentation](docs/README.md).\n\nHere are some online demos of each component:\n\n- [ArrowKeyStepper](https://bvaughn.github.io/react-virtualized/#/components/ArrowKeyStepper)\n- [AutoSizer](https://bvaughn.github.io/react-virtualized/#/components/AutoSizer)\n- [CellMeasurer](https://bvaughn.github.io/react-virtualized/#/components/CellMeasurer)\n- [Collection](https://bvaughn.github.io/react-virtualized/#/components/Collection)\n- [ColumnSizer](https://bvaughn.github.io/react-virtualized/#/components/ColumnSizer)\n- [Grid](https://bvaughn.github.io/react-virtualized/#/components/Grid)\n- [InfiniteLoader](https://bvaughn.github.io/react-virtualized/#/components/InfiniteLoader)\n- [List](https://bvaughn.github.io/react-virtualized/#/components/List)\n- [Masonry](https://bvaughn.github.io/react-virtualized/#/components/Masonry)\n- [MultiGrid](https://bvaughn.github.io/react-virtualized/#/components/MultiGrid)\n- [ScrollSync](https://bvaughn.github.io/react-virtualized/#/components/ScrollSync)\n- [Table](https://bvaughn.github.io/react-virtualized/#/components/Table)\n- [WindowScroller](https://bvaughn.github.io/react-virtualized/#/components/WindowScroller)\n\nAnd here are some \"recipe\" type demos:\n\n- [Table with resizable (drag and drop) columns](https://codesandbox.io/s/j30k46l7xw)\n- [Collapsable tree view](https://rawgit.com/bvaughn/react-virtualized/master/playground/tree.html)\n- [Full-page grid (spreadsheet)](https://rawgit.com/bvaughn/react-virtualized/master/playground/grid.html)\n- [Dynamic cell measuring](https://rawgit.com/bvaughn/react-virtualized/master/playground/chat.html)\n- [Cell hover effects](https://rawgit.com/bvaughn/react-virtualized/master/playground/hover.html)\n\n## Supported Browsers\n\nreact-virtualized aims to support all evergreen browsers and recent mobile browsers for iOS and Android. IE 9+ is also supported (although IE 9 will require some user-defined, custom CSS since flexbox layout is not supported).\n\nIf you find a browser-specific problem, please report it along with a repro case. The easiest way to do this is probably by forking [this Plunker](https://plnkr.co/edit/6syKo8cx3RfoO96hXFT1).\n\n## Friends\n\nHere are some great components built on top of react-virtualized:\n\n- [react-infinite-calendar](https://github.com/clauderic/react-infinite-calendar): Infinite scrolling date-picker with localization, themes, keyboard support, and more\n- [react-sortable-hoc](https://github.com/clauderic/react-sortable-hoc): Higher-order components to turn any list into an animated, touch-friendly, sortable list\n- [react-sortable-tree](https://github.com/fritz-c/react-sortable-tree): Drag-and-drop sortable representation of hierarchical data\n- [react-virtualized-checkbox](https://github.com/emilebres/react-virtualized-checkbox): Checkbox group component with virtualization for large number of options\n- [react-virtualized-select](https://github.com/bvaughn/react-virtualized-select): Drop-down menu for React with windowing to support large numbers of options.\n- [react-virtualized-tree](https://github.com/diogofcunha/react-virtualized-tree/): A reactive tree component that aims to render large sets of tree structured data in an elegant and performant way\n- [react-timeline-9000](https://github.com/BHP-DevHub/react-timeline-9000/): A calendar timeline component that is capable of displaying and interacting with a large number of items\n\n## Contributions\n\nUse [GitHub issues](https://github.com/bvaughn/react-virtualized/issues) for requests.\n\nI actively welcome pull requests; learn how to [contribute](https://github.com/bvaughn/react-virtualized/blob/master/CONTRIBUTING.md).\n\n## Changelog\n\nChanges are tracked in the [changelog](https://github.com/bvaughn/react-virtualized/blob/master/CHANGELOG.md).\n\n## License\n\n_react-virtualized_ is available under the MIT License.\n","funding_links":["https://github.com/sponsors/bvaughn","https://opencollective.com/brianvaughn","https://buymeacoffee.com/bvaughn","https://github.com/sponsors/bvaughn/","https://opencollective.com/react-virtualized","https://opencollective.com/react-virtualized/backer/0/website","https://opencollective.com/react-virtualized/backer/1/website","https://opencollective.com/react-virtualized/backer/2/website","https://opencollective.com/react-virtualized/backer/3/website","https://opencollective.com/react-virtualized/backer/4/website","https://opencollective.com/react-virtualized/backer/5/website","https://opencollective.com/react-virtualized/backer/6/website","https://opencollective.com/react-virtualized/backer/7/website","https://opencollective.com/react-virtualized/backer/8/website","https://opencollective.com/react-virtualized/backer/9/website","https://opencollective.com/react-virtualized/backer/10/website","https://opencollective.com/react-virtualized/backer/11/website","https://opencollective.com/react-virtualized/backer/12/website","https://opencollective.com/react-virtualized/backer/13/website","https://opencollective.com/react-virtualized/backer/14/website","https://opencollective.com/react-virtualized/backer/15/website","https://opencollective.com/react-virtualized/backer/16/website","https://opencollective.com/react-virtualized/backer/17/website","https://opencollective.com/react-virtualized/backer/18/website","https://opencollective.com/react-virtualized/backer/19/website","https://opencollective.com/react-virtualized/backer/20/website","https://opencollective.com/react-virtualized/backer/21/website","https://opencollective.com/react-virtualized/backer/22/website","https://opencollective.com/react-virtualized/backer/23/website","https://opencollective.com/react-virtualized/backer/24/website","https://opencollective.com/react-virtualized/backer/25/website","https://opencollective.com/react-virtualized/backer/26/website","https://opencollective.com/react-virtualized/backer/27/website","https://opencollective.com/react-virtualized/backer/28/website","https://opencollective.com/react-virtualized/backer/29/website"],"categories":["JavaScript","Performance","Uncategorized","UI Components","React","前端开发框架及项目","目录","🧰 React Toolkit","React Virtualization","React [🔝](#readme)","\u003csummary\u003eUI Components\u003c/summary\u003e","UI Utilities","UI Components / UI Tools","UI utilities"],"sub_categories":["UI","Uncategorized","Infinite Scroll / Virtualized List / Virtualized Tree","其他_文本生成、文本对话","Virtualization","React Components","Infinite Scroll","Syntax highlighting","Miscellaneous"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbvaughn%2Freact-virtualized","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbvaughn%2Freact-virtualized","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbvaughn%2Freact-virtualized/lists"}