UNPKG

@slan-health/taro-vueuse

Version:

taro vue版本hooks

26 lines (24 loc) 1.17 kB
import { ComputedRef, Ref } from 'vue'; import { Options, QueryResult } from './core/types'; export type DataType = { list: any[]; [key: string]: any; }; export type LoadMoreService<R extends DataType> = (data?: R) => Promise<R>; export type LoadMoreBaseOptions<R> = Pick<Options<R, any>, 'ready' | 'manual' | 'refreshDeps' | 'refreshDepsAction' | 'debounceInterval' | 'debounceOptions' | 'throttleInterval' | 'throttleOptions' | 'errorRetryCount' | 'errorRetryInterval'> & { dataListKey?: string; isNoMore?: (data?: R) => boolean; onBefore?: () => void; onAfter?: () => void; onSuccess?: (data: R) => void; onError?: (error: Error) => void; }; type LoadMoreQueryResult<R extends DataType> = Pick<QueryResult<R, any>, 'data' | 'loading' | 'error' | 'refresh' | 'refreshAsync' | 'cancel' | 'mutate'> & { dataList: ComputedRef<R['list']>; noMore: ComputedRef<boolean>; loadingMore: Ref<boolean>; loadMore: () => void; loadMoreAsync: () => Promise<R>; }; declare function useLoadMore<R extends DataType>(service: LoadMoreService<R>, options?: LoadMoreBaseOptions<R>): LoadMoreQueryResult<R>; export default useLoadMore;