工具

react-window

React组件,用于有效地渲染大列表和表格数据。

react-virtualized

用于高效渲染大型列表和表格数据的 React 组件。

antd-table-infinity

基于antd-table的无限滚动组件,支持虚拟滚动。

ahooks - usevirtuallist(hooks)

提供虚拟化列表能力的 Hook,用于解决展示海量数据渲染时首屏渲染缓慢和滚动卡顿问题。

antd-Select 使用的虚拟滚动插件

案例

  1. import React from 'react';
  2. import { FixedSizeList as List } from 'react-window';
  3. import styles from './index.module.scss';
  4. export default () => {
  5. const Row = ({ index, style }) => (
  6. <div style={{ ...style, backgroundColor: index % 2 === 0 ? '#999' : '' }}>
  7. 虚拟滚动技术{index}
  8. </div>
  9. );
  10. return (
  11. <div className={styles.content}>
  12. <List
  13. width="100%"
  14. height={200}
  15. itemCount={100} // 总共多少行
  16. itemSize={30} // 每行高度
  17. >
  18. {Row}
  19. </List>
  20. </div>
  21. );
  22. };