vite-uni-dev-tool
Version:
vite-uni-dev-tool, debug, uni-app, 一处编写,到处调试
126 lines (125 loc) • 3.64 kB
TypeScript
import { Ref } from 'vue';
type Option<R, P> = {
/** 是否需要uni.showLoading */
useUniLoading?: boolean;
/**
* 每次 ready 从 false 变为 true 时, 都会自动发起请求
* 为 false 时,请求永远都不会发出
*/
ready?: boolean | Ref<boolean>;
/** 立即执行 */
manual?: boolean;
/**
* 默认参数
* 分页参数在请放入 分页参数配置中
*/
defaultParams?: P;
/** 依赖刷新 */
refreshDeps?: any[];
/**
* 延迟结束loading
* 单位毫秒
* 防止请求过快造成渲染闪烁
*/
loadingDelay?: number;
/**
* 轮询间隔
* 通过 run/runAsync 来启动轮询
* 通过 cancel 取消轮询
*/
pollingInterval?: number;
/**
* 轮询错误重试次数
*/
pollingErrorRetryCount?: number;
/**
* 错误重试次数
*/
errorRetryCount?: number;
/**
* 错误重试间隔
*/
errorRetryDelay?: number;
/**
* 防抖等待时间
*/
debounceWait?: number;
/**
* 在防抖开始前执行调用
*/
debounceLeading?: boolean;
/**
* 在防抖结束后执行调用
*/
debounceTrailing?: boolean;
/**
* 节流等待时间
*/
throttleWait?: number;
/**
* 在节流开始前执行调用
*/
throttleLeading?: boolean;
/**
* 在节流结束后执行调用
*/
throttleTrailing?: boolean;
/**
* 使用分页
*/
usePagination?: boolean;
/**
* 分页配置
*
*/
paginationConfig?: {
/** 当前页码参数名,默认 'current' */
currentKey?: string;
/** 每页数量参数名,默认 'pageSize' */
pageSizeKey?: string;
/** 总数字段名,默认 'total' */
totalKey?: string;
/** 默认当前页,默认 1 */
defaultCurrent?: number;
/** 默认每页数量,默认 10 */
defaultPageSize?: number;
/** 列表字段名,默认 'list' */
listKey?: string;
};
/** 请求前 */
onBefore?: () => Promise<void> | void;
/** 请求成功 */
onSuccess?: (result: R | undefined, params?: P) => void;
/** 请求失败 */
onError?: (error: any) => void;
/** 请求完成 */
onFinally?: () => void;
};
export type Service<R, P extends any[]> = (...args: P) => Promise<R>;
declare const useRequest: <R, P extends any[]>(service: Service<R, P>, option?: Option<R, P> | undefined) => {
data: Ref<R | undefined, R | undefined>;
setData: (value: R) => void;
loading: Ref<boolean, boolean>;
setLoading: (value: boolean) => void;
run: (...params: P) => void;
runAsync: (...params: P) => Promise<R | undefined>;
refresh: () => void;
refreshAsync: () => Promise<R | undefined> | undefined;
cancel: () => void;
pagination: import('vue').ShallowReactive<{
current: number;
pageSize: number;
total: number;
totalPage: number;
hasMore: boolean;
setCurrent: (current: number) => void;
setPageSize: (pageSize: number) => void;
reset: () => void;
prev: () => void;
next: () => void;
change: (current: number, pageSize: number) => void;
}> | undefined;
list: Ref<import('@vue/reactivity').UnwrapRefSimple<R>[], R[] | import('@vue/reactivity').UnwrapRefSimple<R>[]>;
};
export default useRequest;
//# sourceMappingURL=index.d.ts.map