0.0.2 • Published 2 years ago

lg-http v0.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

lg-http

注:只支持 get、post

介绍

基于 axios 二次封装,内置加载, 提示, 取消重复请求, 刷新 token

使用

引入

import Http, { useHttp } from 'lg-http'

演示 1

import Http from 'lg-http'
/*
 * option option配置属性
 */
const $http = new Http(option)
/*
 * url 接口地址
 * data 接口参数
 * attaches attaches配置属性
 * axiosConfig axios配置属性
 */
$http
    .get(url, data, attaches, axiosConfig)
    .then((result) => {})
    .catch((error) => {})

$http.get(
    '/login',
    {
        account: 'admin',
        password: '123456'
    },
    {
        showLoading: false,
        showToast: false,
        codeCallback: {
            400: (result) => {
                console.log(result)
            }
        }
    },
    {
        header: {
            'Content-Type': 'application/json'
        }
    }
)

演示 2

注:useHttp 只适用 Vue3

根据 loading , 方便处理独立的加载效果

import {
    useHttp
} from 'lg-http'

/*
 * option option配置属性
 * url 接口地址
 * data 接口参数
 * attaches attaches配置属性
 * axiosConfig axios配置属性
 * return resultAttr useHttp结果属性
 */
const resultAttr = useHttp(option, {
    url,
    data,
    attaches,
    axiosConfig
})

const {
    response,
    data,
    error,
    loading
} = useHttp(option, {
    '/login',
    {
        account: 'admin',
        password: '123456'
    },
    {
        showLoading: true,
        showToast: false,
        codeCallback: {
            400: (result) => {
                console.log(result)
            }
        }
    },
    {
        header: {
            'Content-Type': 'application/json'
        }
    }
})

option 配置属性

属性名类型默认值说明
baseURLstring-axios baseURL
timeoutnumber20000axios timeout
headersobject{}axios headers
showLoadingbooleantrue是否开启加载效果
loadingMethodsobject{open: console.log, close: console.log}加载效果的配置
showToastbooleantrue是否开启提示
toastMethodsfunction, objectconsole.log提示配置
isRefreshbooleanfalse是否刷新 token
refreshRequestAssertfunction(res)=>res.code===401刷新 token 的状态
refreshRequest() => Promise-刷新 token 的函数
isOptimizationbooleanfalse是否开启重复请求拦截
successRequestAssertfunction(res)=>res.success请求正确的状态
defaultErrorToastMessagestring'服务异常,请重新再试'错误提示文案
codeCallbackobject{}某种 code 状态下的特殊处理

attaches 配置属性(可选)

属性名类型默认值说明
showLoadingboolean-是否开启加载效果
showToastboolean-是否开启提示
isRefreshboolean-是否刷新 token
isOptimizationboolean-是否开启重复请求拦截
codeCallbackobject{}某种 code 状态下的特殊处理
successMessagestring-成功提示文案

axios 配置属性

axios 官网

useHttp 结果属性

属性名类型默认值说明
responseobeject-请求成功结果
dataobeject-response.data
errorobeject-请求错误结果
loadingboolean-是否加载中。默认为 true, 请求完成为 false
finishedboolean-是否请求完成。默认为 false, 请求完成为 true