Listy虚拟列表
Listy
虚拟列表
使用import { Listy } from 'antd'; |
版本自 6.6.0 起支持 |
virtual 后只渲染视口内的行。自
antd@6.6.0版本开始提供该组件。
通用属性参考:通用属性
| 参数 | 说明 | 类型 | 默认值 | 版本 | 全局配置 |
|---|---|---|---|---|---|
| classNames | 语义化结构 class | { root?, item?, groupHeader? } | - | 6.6.0 | 6.6.0 |
| group | 分组配置,见下方 Group | Group<T, K> | - | 6.6.0 | × |
| height | 滚动容器高度,内容超出后滚动 | number | - | 6.6.0 | × |
| itemRender | 渲染单行 | (item: T, index: number) => ReactNode | - | 6.6.0 | × |
| items | 列表数据源 | T[] | [] | 6.6.0 | × |
| rowKey | 每一项的唯一键,字段名或取值函数 | keyof T | (item: T) => Key | - | 6.6.0 | × |
| sticky | 分组标题是否吸顶 | boolean | false | 6.6.0 | × |
| styles | 语义化结构 style | { root?, item?, groupHeader? } | - | 6.6.0 | 6.6.0 |
| virtual | 是否开启虚拟滚动,仅渲染视口内的行,需配合 height 使用 | boolean | false | 6.6.0 | × |
| onScroll | 原生滚动事件回调 | React.UIEventHandler<HTMLElement> | - | 6.6.0 | × |
| 参数 | 说明 | 类型 |
|---|---|---|
| key | 计算每条数据所属的分组键,返回值相同的数据归为一组 | (item: T) => K |
| title | 渲染分组标题,入参为分组键与该组数据 | (groupKey: K, items: T[]) => ReactNode |
| 名称 | 说明 | 类型 |
|---|---|---|
| scrollTo | 滚动到某个位置、某一项或某个分组 | (config?: ListyScrollToConfig) => void |
ListyScrollToConfig 为以下之一:
| 形态 | 说明 |
|---|---|
| number | 滚动到某个像素位置(scrollTop) |
{ top?, left? } | 滚动到绝对像素坐标 |
{ key, align?, offset? } | 滚动到 rowKey 等于 key 的数据项 |
{ groupKey, align?, offset? } | 滚动到某个分组标题 |
align 可选 'top' | 'bottom' | 'auto';offset 为对齐后额外的像素偏移。
| Token 名称 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| itemPaddingBlock | 列表项的纵向内间距。 | number | 12 |
| itemPaddingInline | 列表项的横向内间距。 | number | 16 |
| Token 名称 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| colorBgContainer | 组件的容器背景色,例如:默认按钮、输入框等。务必不要将其与 `colorBgElevated` 混淆。 | string | #ffffff |
| colorFillAlter | 控制元素替代背景色。 | string | rgba(0,0,0,0.02) |
| colorSplit | 用于作为分割线的颜色,此颜色和 colorBorderSecondary 的颜色一致,但是用的是透明色。 | string | rgba(5,5,5,0.06) |
| colorText | 最深的文本色。为了符合W3C标准,默认的文本颜色使用了该色,同时这个颜色也是最深的中性色。 | string | rgba(0,0,0,0.88) |
| colorTextDescription | 控制文本描述字体颜色。 | string | rgba(0,0,0,0.45) |
| controlItemBgHover | 控制组件项在鼠标悬浮时的背景颜色。 | string | rgba(0,0,0,0.04) |
| fontFamily | Ant Design 的字体家族中优先使用系统默认的界面字体,同时提供了一套利于屏显的备用字体库,来维护在不同平台以及浏览器的显示下,字体始终保持良好的易读性和可读性,体现了友好、稳定和专业的特性。 | string | -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji' |
| fontSize | 设计系统中使用最广泛的字体大小,文本梯度也将基于该字号进行派生。 | number | 14 |
| fontWeightStrong | 控制标题类组件(如 h1、h2、h3)或选中项的字体粗细。 | number | 600 |
| lineHeight | 文本行高 | number | 1.5714285714285714 |
| lineType | 用于控制组件边框、分割线等的样式,默认是实线 | string | solid |
| lineWidth | 用于控制组件边框、分割线等的宽度 | number | 1 |
| motionDurationMid | 动效播放速度,中速。用于中型元素动画交互 | string | 0.2s |
| motionEaseInOut | 预设动效曲率 | string | |
| paddingXS | 控制元素的特小内间距。 | number | 8 |