更新记录

1.0.0(2024-11-15) 下载此版本

  • 初始版本

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.32,Android:支持,iOS:支持,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

kux-apiuse-request

该插件是 uni.request 的异步版本封装,在支持原生API所有特性前提下可以使用异步hooks函数实现业务逻辑,摒弃了传统的try catch, 使业务代码更简洁高效。

插件特色

  • 异步hooks函数风格
  • 简洁高效
  • 摒弃传统的try catch

基本用法

import { useRequest } from '@/uni_modules/kux-apiuse-request';

const { request } = useRequest();

type Data = {
    age: number
    id: number
    name: string
}

type Response = {
    statusCode: number
    route: string
    method: string
    message: string
    data: Data[]
}

const demo = async (): Promise<void> => {
    const { fail, success, requestTask, data } = await request({
        url: 'https://test.api.fdproxy.cn/user/list'
    } as RequestOptions<any>);

    if (fail != null) {
        console.log('请求错误:', fail);
        return;
    }

    if (data != null) {
        console.log(data);
        const response = JSON.parseObject<Response>(JSON.stringify(data))!;
        console.log(response.data[0].name);
    }
    return;
}

注意

该插件运行环境要求需要uni编译器版本在 4.32 及以上

request 返回参数说明

success

对应 uni.requestRequestSuccess

注意

由于目前 uts 不支持在类型定义中的函数参数里面增加前缀泛型,所以成功回调的结果类型是 any,需要自己根据结果转换类型

fail

对应 uni.requestRequestFail

requestTask

对应 uni.requestRequestTask

data

请求成功回调结果的data, 就是 success 回调中的 data, 一般对应接口服务返回的结果.

类型定义

/**
 * interface.uts
 * uts插件接口定义文件,按规范定义接口文件可以在HBuilderX中更好的做到语法提示
 */

export type KuxRequestReturn = {
    success: RequestSuccess<any> | null
    data: any | null
    fail: RequestFail | null
    requestTask: RequestTask
}

export type KuxUseRequestReturn = {
    request: (param: RequestOptions<any>) => Promise<KuxRequestReturn>
}

export declare function useRequest (): KuxUseRequestReturn

结语

kux 不生产代码,只做代码的搬运工,致力于提供uts 的 js 生态轮子实现,欢迎各位大佬在插件市场搜索使用 kux 生态插件:https://ext.dcloud.net.cn/search?q=kux

友情推荐

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问