美文网首页💚💚VUE 💚💚
ts通过class类封装axios

ts通过class类封装axios

作者: Shiyouzhang | 来源:发表于2021-04-16 09:26 被阅读0次

ts通过class类封装axios

一、axios 安装

npm i axios -S

二、HttpRequest类封装

// 文件 utils/axios.ts

import axios, {AxiosInstance, AxiosRequestConfig} from 'axios'

class HttpRequest {
    private readonly baseUrl: string;
    constructor() {
        this.baseUrl = 'http://localhost:3000'
    }
    getInsideConfig() {
        const config = {
            baseURL: this.baseUrl,
            headers: {
                //
            }
        }
        return config
    }

// 请求拦截
    interceptors(instance: AxiosInstance, url: string | number | undefined) {
        instance.interceptors.request.use(config => {
            // 添加全局的loading..
            // 请求头携带token
            return config
        }, (error: any) => {
            return Promise.reject(error)
        })
        //响应拦截
        instance.interceptors.response.use(res => {
            //返回数据
            const {data} = res
            console.log('返回数据处理',res)
            return data
        }, (error: any) => {
            console.log('error==>',error)
            return Promise.reject(error)
        })
    }

    request(options: AxiosRequestConfig) {
        const instance = axios.create()
        options = Object.assign(this.getInsideConfig(), options)
        this.interceptors(instance, options.url)
        return instance(options)
    }
}

const http = new HttpRequest()
export default http

三、接口方法封装


// 文件api/index.ts
import http  from '../utils/axios'

export const menuList =()=>{
    return http.request({
        url: '/users/menuList',
        method: 'get'
    })
}

四、页面使用

import {menuList} from '../api/index'

getMenuList(){
    menuList().then(res=>{
        console.log(res)
    })

}

相关文章

  • ts通过class类封装axios

    ts通过class类封装axios 一、axios 安装 二、HttpRequest类封装 三、接口方法封装 四、...

  • 二次封装axios工具类ES6

    内容概要使用es6的class对axios进行二次封装,有使用TS限制类型,但99%是js语法。把参数的类型限制移...

  • TS + Axios简单使用

    在ts项目中给axios的config加属性,例如 loading 定义接口返回的数据类型 1 简单封装axios...

  • 封装Axios与制定Service层

    封装Axios 在项目中我们通常使用的是axios,由于我们的项目采用的是typescript,以下记录怎么在ts...

  • ES6中的class

    (在封装Koa时用到) 一、class概述 class作为对象的模板被引入,可以通过class关键字定义类,通过n...

  • ts的学习

    安装全局ts tsconfig.json文件的配置 ts基础类型 class类的练习

  • Vite2+vue3+ts引用axios,配置环境变量

    安装 Axios 并封装,再配置环境变量 本章节源码:Lzq811/vite-vue-ts-eslint at v...

  • react的umi hooks的useRequest 和 axi

    一、封装axios src/utils/request.ts: 有没有发现,不论拦截到的接口返回结果是成功还是失败...

  • 面向对象特性

    1、类(Class)类是ts的核心,使用ts开发时,大部分代码是写在类里面的。类的定义、构造函数、类的继承;类的定...

  • vue项目中axios的封装

    通过上一篇文章我们了解了axios,这次结合项目中的封装,具体讲解一下。 1 为什么要封装axios 对axios...

网友评论

    本文标题:ts通过class类封装axios

    本文链接:https://www.haomeiwen.com/subject/pywslltx.html