如何实现“vue3 ts封装请求axios”

简介

在使用Vue3时,我们通常会需要封装请求库axios来进行网络请求。本文将教你如何在Vue3项目中使用TypeScript来封装axios请求。

流程概述

下面是整个过程的步骤概览:

步骤 操作
1 安装axios和@types/axios
2 创建请求封装工具类
3 在Vue组件中使用封装好的请求

详细步骤

1. 安装axios和@types/axios

首先,在项目中安装axios和@types/axios:

npm install axios @types/axios

这将安装axios和axios的TypeScript类型定义。

2. 创建请求封装工具类

接下来,创建一个工具类用于封装axios请求。创建一个api.ts文件,并在其中编写以下代码:

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

class Api {
  private instance: AxiosInstance;

  constructor() {
    this.instance = axios.create({
      baseURL: '
      timeout: 5000,  // 请求超时时间设置为5秒
    });
  }

  public async get<T>(url: string, config?: AxiosRequestConfig): Promise<T> {
    const response: AxiosResponse<T> = await this.instance.get(url, config);
    return response.data;
  }

  public async post<T>(url: string, data: any, config?: AxiosRequestConfig): Promise<T> {
    const response: AxiosResponse<T> = await this.instance.post(url, data, config);
    return response.data;
  }
}

export default new Api();

在上面的代码中,我们创建了一个Api类,其中包含了get和post方法用于发送GET和POST请求。你可以根据需要添加其他HTTP方法的封装。

3. 在Vue组件中使用封装好的请求

最后,在Vue组件中使用我们封装好的请求工具类。例如:

import { defineComponent } from 'vue';
import Api from '@/api/api';

export default defineComponent({
  setup() {
    const fetchData = async () => {
      const data = await Api.get<User[]>('/users');
      console.log(data);
    };

    fetchData();

    return {};
  },
});

在上述代码中,我们导入了之前创建的Api类,并在setup函数中调用了get方法来获取用户数据。你可以根据具体需求来进行使用。

状态图

stateDiagram
    [*] --> 安装axios和@types/axios
    安装axios和@types/axios --> 创建请求封装工具类
    创建请求封装工具类 --> 在Vue组件中使用封装好的请求
    在Vue组件中使用封装好的请求 --> [*]

旅行图

journey
    title 实现“vue3 ts封装请求axios”过程
    section 安装axios和@types/axios
        [*] --> 安装axios和@types/axios
    section 创建请求封装工具类
        安装axios和@types/axios --> 创建请求封装工具类
    section 在Vue组件中使用封装好的请求
        创建请求封装工具类 --> 在Vue组件中使用封装好的请求
    section 结束
        在Vue组件中使用封装好的请求 --> [*]

通过以上步骤,你已经学会了如何在Vue3项目中使用TypeScript来封装axios请求。希望你能够顺利实现并加深对Vue3和TypeScript的理解。祝学习顺利!