refine(hooks): 优化 useRequest 立即执行逻辑

- immediate 选项由默认true 改为false
- 立即执行由在 onLoad 执行改为在钩子调用期间立即执行
BREAKING CHANGE: immediate 选项由默认 true 改为 false
This commit is contained in:
Jinliang
2024-06-08 15:59:49 +08:00
parent f69515952b
commit 457186c391
2 changed files with 5 additions and 6 deletions

View File

@@ -1,7 +1,7 @@
import { UnwrapRef } from 'vue'
type IUseRequestOptions<T> = {
/** 是否立即执行如果是则在onLoad执行 */
/** 是否立即执行 */
immediate?: boolean
/** 初始化数据 */
initialData?: T
@@ -11,13 +11,13 @@ type IUseRequestOptions<T> = {
* useRequest是一个定制化的请求钩子用于处理异步请求和响应。
* @param func 一个执行异步请求的函数返回一个包含响应数据的Promise。
* @param options 包含请求选项的对象 {immediate, initialData}。
* @param options.immediate 是否立即执行请求,默认为true。
* @param options.immediate 是否立即执行请求,默认为false。
* @param options.initialData 初始化数据默认为undefined。
* @returns 返回一个对象{loading, error, data, run},包含请求的加载状态、错误信息、响应数据和手动触发请求的函数。
*/
export default function useRequest<T>(
func: () => Promise<IResData<T>>,
options: IUseRequestOptions<T> = { immediate: true },
options: IUseRequestOptions<T> = { immediate: false },
) {
const loading = ref(false)
const error = ref(false)
@@ -39,8 +39,6 @@ export default function useRequest<T>(
})
}
onLoad(() => {
options.immediate && run()
})
options.immediate && run()
return { loading, error, data, run }
}