跳到主要内容

VirtualList 虚拟列表

虚拟滚动列表组件,用于高效渲染大量数据。

何时使用

  • 需要渲染大量列表数据时
  • 需要优化长列表性能时
  • 需要实现无限滚动时

代码演示

基础用法

import { VirtualList } from 'taro-uno';

function Demo() {
const data = Array.from({ length: 10000 }, (_, i) => ({
id: i,
text: `项目 ${i}`,
}));

return (
<VirtualList
data={data}
itemHeight={50}
renderItem={(item) => (
<div style={{ height: 50 }}>{item.text}</div>
)}
/>
);
}

动态高度

import { VirtualList } from 'taro-uno';

function Demo() {
return (
<VirtualList
data={data}
estimatedItemHeight={50}
renderItem={(item, index) => (
<div>{item.text}</div>
)}
/>
);
}

无限滚动

import { VirtualList } from 'taro-uno';

function Demo() {
const loadMore = async () => {
// 加载更多数据
};

return (
<VirtualList
data={data}
itemHeight={50}
onEndReached={loadMore}
onEndReachedThreshold={0.5}
renderItem={(item) => (
<div>{item.text}</div>
)}
/>
);
}

API

属性说明类型默认值
data列表数据T[][]
itemHeight固定项高度number-
estimatedItemHeight预估项高度(动态高度时使用)number-
height容器高度number | string'100%'
overscan预渲染数量number5
renderItem渲染函数(item: T, index: number) => ReactNode-
onEndReached滚动到底部回调() => void-
onEndReachedThreshold触发加载的阈值number0.5

平台兼容性

微信小程序H5React Native鸿蒙