在Vue 3中使用TypeScript和axios 1.4.0进行请求封装的示例代码如下:

首先,安装需要的依赖:

npm install axios@1.4.0

然后,创建一个名为api.ts的文件,用于封装请求:

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

// 创建一个axios实例
const instance = axios.create({
  baseURL: 'http://api.example.com',
  timeout: 5000, // 请求超时时间
});

// 请求拦截器
instance.interceptors.request.use(
  (config: AxiosRequestConfig) => {
    // 在请求发送之前做一些处理,比如添加token到请求头
    // config.headers['Authorization'] = 'Bearer ' + token;
    return config;
  },
  (error: any) => {
    // 处理请求错误
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  (response: AxiosResponse) => {
    // 在响应数据之前做一些处理
    // 比如对响应进行统一的错误处理
    return response.data;
  },
  (error: any) => {
    // 处理响应错误
    return Promise.reject(error);
  }
);

// 导出封装的请求方法
export const get = (url: string, params?: any) => {
  return instance.get(url, { params });
};

export const post = (url: string, data?: any) => {
  return instance.post(url, data);
};

// 其他请求方法,比如put、delete等,可以根据需要进行封装

接下来,在需要使用请求的地方,可以直接导入api.ts中封装的请求方法进行使用:

import { get, post } from './api';

// 发起GET请求
get('/users', { page: 1, pageSize: 10 })
  .then((response) => {
    // 处理响应数据
    console.log(response);
  })
  .catch((error) => {
    // 处理请求错误
    console.error(error);
  });

// 发起POST请求
post('/users', { name: 'John', age: 25 })
  .then((response) => {
    // 处理响应数据
    console.log(response);
  })
  .catch((error) => {
    // 处理请求错误
    console.error(error);
  });

// 其他请求方法的使用类似

以上示例代码封装了GET和POST请求,你可以根据需要继续封装其他类型的请求,比如PUT、DELETE等

vue3 Typescript asiox140 封装请求

原文地址: https://www.cveoy.top/t/topic/hQef 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录