如何实现“vue ts 封装axios”

整体流程

步骤 内容
1 安装axios和@types/axios依赖
2 创建封装axios的service文件
3 编写封装axios的service代码
4 在Vue组件中使用封装后的axios

步骤说明

步骤1:安装axios和@types/axios依赖

在终端中运行以下命令安装axios和@types/axios依赖:

npm install axios @types/axios --save

步骤2:创建封装axios的service文件

在项目中创建一个services文件夹,并在其中创建一个axiosService.ts文件。

步骤3:编写封装axios的service代码

在axiosService.ts文件中编写以下代码:

import axios, { AxiosInstance, AxiosResponse, AxiosError } from 'axios';

class AxiosService {
  private axiosInstance: AxiosInstance;

  constructor() {
    this.axiosInstance = axios.create({
      baseURL: '
      timeout: 5000,
    });

    this.axiosInstance.interceptors.request.use((config) => {
      // 在发送请求之前做些什么
      return config;
    }, (error) => {
      // 对请求错误做些什么
      return Promise.reject(error);
    });

    this.axiosInstance.interceptors.response.use((response) => {
      // 对响应数据做些什么
      return response;
    }, (error) => {
      // 对响应错误做些什么
      return Promise.reject(error);
    });
  }

  public get<T>(url: string): Promise<AxiosResponse<T>> {
    return this.axiosInstance.get<T>(url);
  }

  public post<T>(url: string, data: any): Promise<AxiosResponse<T>> {
    return this.axiosInstance.post<T>(url, data);
  }
}

export default new AxiosService();

步骤4:在Vue组件中使用封装后的axios

在Vue组件中引入封装后的axiosService,并调用get或post方法发送请求。

import { defineComponent } from 'vue';
import axiosService from './services/axiosService';

export default defineComponent({
  mounted() {
    axiosService.get('/data')
      .then((response) => {
        console.log(response.data);
      })
      .catch((error) => {
        console.error(error);
      });
  }
});

状态图

stateDiagram
    [*] --> 安装axios和@types/axios依赖
    安装axios和@types/axios依赖 --> 创建封装axios的service文件
    创建封装axios的service文件 --> 编写封装axios的service代码
    编写封装axios的service代码 --> 在Vue组件中使用封装后的axios
    在Vue组件中使用封装后的axios --> [*]

通过以上步骤,你就完成了“vue ts 封装axios”的实现过程。希望对你有所帮助!