Intro
无限滚动分页逻辑
Demos
Api
index.d.ts
import type { PagingParamsDTO, PagingResultDTO, PagingService, UseAsyncStateOptions } from '@bowencool/vhooks';
export declare type UseInfiniteScrollOptions<R> = UseAsyncStateOptions<PagingResultDTO<R>, [PagingParamsDTO]> & {
defaultPageSize?: number;
isDone?: (res: PagingResultDTO<R>) => boolean;
};
export declare function useInfiniteScroll<RowType>(pagingService: PagingService<RowType>, { defaultPageSize: pageSize, isDone, ...others }?: UseInfiniteScrollOptions<RowType>): {
/** 原始响应 */
rawData: import("vue").Ref<PagingResultDTO<RowType> | undefined>;
/** 合并后的列表 */
list: import("vue").Ref<RowType[] | undefined>;
/** 正在刷新第一页的数据 */
refreshing: import("vue").Ref<boolean>;
/** 正在加载下一页的数据 */
loadingMore: import("vue").ComputedRef<boolean>;
/** 正在请求接口 */
loading: Readonly<import("vue").Ref<boolean>>;
/** 接口错误 */
error: Readonly<import("vue").Ref<Readonly<unknown>>>;
/** 加载下一页的数据 */
loadMore: () => Promise<void>;
/** “暂无数据” */
empty: import("vue").ComputedRef<boolean>;
/** 是否已经加载全部 */
done: import("vue").Ref<boolean>;
/** 刷新到第一页 */
refresh: () => Promise<void>;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27