zq-vue-hook 中文文档教程

发布于 2年前 浏览 12 项目主页 更新于 2年前

zq-vue-hook

一些vue3通用的组合式函数

安装

npm install zq-vue-hook

useAsyncRun

该函数接受一个异步方法,返回 loading、run、layzRun 3个属性,其中run和layzRun可以接受一个异步函数进行执行,执行过程中会根据实际情况切换loading.value属性,如果在执行过程中报错则会运行errorHandler函数

入参说明

参数名类型说明
errorHandlerErrorHandler=(error:any,step?:string)=>void当执行异步函数出错时候会调用该函数,error 是错误对象,step 用来备注说明,如果有的话则会传入

出参说明

参数名类型说明
loadingRefloading.value=true 则表示正在运行异步函数,false则表示没有运行函数
runfunc: (params?: T) => Promise, step?: string, params?: T执行func参数传入的函数,step为步骤标记当出错的时候会传递给errorHandler,params 为func 函数的入参
layzRunfunc: (params?: T) => Promise, step?: string与run函数功能类似,区别是layzRun是对func参数的包装,会返回一个函数,在需要的时候调用执行

代码示例

    interface IRequestParams {
        value: number,
        throwError?: boolean
    }

    interface IResponse {
        square: number
    }

    const errorMessage = 'request is error'
    function handler(error: any, step?: string) {
        console.log(error.message) //request is error
        console.log(step) // step3
    }

    async function request(params?: IRequestParams): Promise<IResponse> {
        await sleep();
        if (params && params.throwError) {
            throw new Error(errorMessage)
        }
        const value = params ? params.value : 0
        return {
            square: value * value
        }
    }

    // 延迟运行
    const layzRequest = layzRun(request);
    const layzValue = await layzRequest({ value: 3 })
    cosole.log(layzValue.square) // 9

    // 错误处理
    const errorWait = run(request, 'step3', { value: 2, throwError: true })
    await errorWait //错误输出查看 handler 方法
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文