XList 列表
示例
基础用法
正在加载数据...
- 1
<template>
<div style="height: 300px">
<XList :data="loader" data-key="id" @load="onLoad" :page="1" pager>
<template #="{ item, index }">
<XDataItem
split
direction="row"
image-src="https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg"
image-height="100px"
image-width="100px"
:title="`占位内容加载失败_${JSON.stringify(item)}_${index}`"
description="可通过lazy开启懒加载功能, 当图片滚动到可视范围内才会加载。 可通过 scroll-container 来设置滚动容器, 若未定义,则为最近一个 overflow 值为 auto 或 scroll 的父元素。">
</XDataItem>
</template>
</XList>
</div>
</template>
<script lang="ts" setup>
import { XList, XDataItem, type ListData } from '@vtj/ui';
const onLoad = (params: any) => {
console.log('trigger load', params);
};
const loader = (state: any) => {
console.log('do loader', state);
const total = 100;
const { page = 1, pageSize = 10 } = state;
const list: any[] = [];
for (let i = 0; i < pageSize; i++) {
list.push({
id: (page - 1) * pageSize + i
});
}
return new Promise<ListData>((resolve) => {
setTimeout(() => {
resolve({
list,
total
});
}, 20);
});
};
</script>API
属性
| 属性名 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| data | 要在表中渲染的数据对象 | object | function | [] |
| itemHeight | 设置 itemHeight 即自动开启虚拟滚动 | number | function | - |
| width | 表格的宽度 | string | number | '100%' |
| height | 表格的高度 | string | number | '100%' |
| pager | 开启分页 | boolean | object | - |
| page | 初始页码 | number | 1 |
| pageSize | 初始每页显示条目个数 | number | 50 |
| dataKey | 数据的 Key,用来优化 Table 的渲染; | string | - |
| infiniteScroll | 滚动到底部时,加载更多数据 | boolean | object | - |
属性 data: { list: any[], total?: number, pageSize: number, page: number, }
属性 infiniteScroll: { disabled?: boolean; delay?: number; distance?: number; immediate?: boolean; }
事件
| 名称 | 说明 | 参数 |
|---|---|---|
| load | 加载数据 | (state: ListState) |
插槽
| 插槽名 | 说明 | 类型 |
|---|---|---|
| loading | 加载中 | - |
| nomore | 没有更多数据了 | - |
暴露
| 名称 | 说明 | 类型 |
|---|---|---|
| list | 列表数据中的data | - |
| wrapperRef | - | - |
| loading | 加载状态 | - |
| state | page,pageSize | - |
| pageCount | 当前页数 | - |
| nomore | 没有更多数据 | - |
| data | 列表数据 | - |
| getKey | 获取列表数据的key | function |
| scrollTo | 滑动到 | function |