vue3中封装axios请求最新实现步骤

 更新时间:2024年04月27日 14:25:14   作者:尔嵘  
这篇文章主要给大家介绍了关于vue3中封装axios请求的最新实现步骤,在Vue 3中可以通过封装axios来实现接口的统一管理和调用,文中通过代码介绍的非常详细,需要的朋友可以参考下

在 Vue3 中,可以使用 axios 库进行网络请求,并将其封装到一个自定义的函数中以便全局使用。具体实现步骤如下:

1.安装 Axios:可以通过 npm 或 yarn 安装 axios 库。

npm install axios
# 或者
yarn add axios

2.创建一个 axios 实例并设置默认配置项和拦截器,该文件取名叫request.js

import axios from 'axios'
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: 5000
})

// request 拦截器
service.interceptors.request.use(
  config => {
    // 在这里可以设置请求头、请求参数等return config
  },
  error => {
    console.log(error)
    return Promise.reject(error)
  }
)

// response 拦截器
service.interceptors.response.use(
  response => {
    // 在这里处理返回数据const { data } = response
    if (data.code !== 200) {
      console.error('Error:', data.message)
      return Promise.reject(newError(data.message || 'Error'))
    } else {
      return data
    }
  },
  error => {
    console.log(error)
    return Promise.reject(error)
  }
)

// 封装具体的请求方法: 四种请求类型不和下面的3和4标题内容放在一起
export const get = (url, params) => {
  return service .get(url, { params });
};

export const post = (url, data) => {
  return service .post(url, data);
};

export const put = (url, data) => {
  return service .put(url, data);
};

export const delete= (url, data) => {
  return service .delete(url, data);
};

export default service

在上述代码中,我们创建了一个名为 service 的 axios 实例,并设置了一些默认的配置项和拦截器。其中,request 拦截器用于请求发送前对请求做一些处理,例如设置请求头、请求参数等;response 拦截器用于对返回数据进行处理,例如根据接口返回的状态码判断请求是否成功等。

3.将 axios 封装到一个函数中,api.js

import service from '@/utils/request'
export function request(config) {
  return service(config)
}

在上述代码中,我们将 axios 封装到一个名为 request 的函数中,并导出该函数,以便在其他地方可以直接调用。

4.在代码中使用封装好的 axios 请求

import { request } from '@/api'
request({
  url: '/user',
  method: 'get'
}).then(response => {
  console.log(response)
})

5.结合request.js中四种请求,代替上面3和4标题

import { get, post,put, delete } from '@/utils/request';

// 发送GET请求的示例
get('/users', { id: 1 })
  .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);
  });

在上述代码中,我们引入封装好的 request 函数,并通过传递一个包含请求参数的配置对象来发起网络请求。

总结

需要注意的是,在实际应用中,我们可能还需要根据业务需求进一步封装不同类型的请求,例如 GET 请求、POST 请求、PUT请求、DELETE等,以及处理请求错误等情况。

到此这篇关于vue3中封装axios请求的文章就介绍到这了,更多相关vue3封装axios请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue3中结合ElementPlus实现弹窗的封装方式

    Vue3中结合ElementPlus实现弹窗的封装方式

    这篇文章主要介绍了Vue3中结合ElementPlus实现弹窗的封装方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Vue监视数据的原理详解

    Vue监视数据的原理详解

    这篇文章主要为大家详细介绍了Vue监视数据的原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • vue多页面项目开发实战指南

    vue多页面项目开发实战指南

    一般我们的vue项目都是单页面的,其实因为vue在工程化开发的时候依赖了webpack,webpack帮我们将所有的资源整合到一起而形成一个单页面,下面这篇文章主要给大家介绍了关于vue多页面项目开发的相关资料,需要的朋友可以参考下
    2022-01-01
  • 解读Vue-loader的相关知识

    解读Vue-loader的相关知识

    这篇文章主要介绍了解读Vue-loader的相关知识,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 解决vue无法设置滚动位置的问题

    解决vue无法设置滚动位置的问题

    这篇文章主要介绍了解决vue无法设置滚动位置的问题 ,需要的朋友可以参考下
    2018-10-10
  • Vue3利用缩放进行屏幕分辨率适配的解决方案讲解

    Vue3利用缩放进行屏幕分辨率适配的解决方案讲解

    本文详细解析了如何在Vue3中实现一个自动根据设计宽度缩放并调整高度的响应式组件,组件的核心功能包括设计宽度设定、动态缩放比例计算和高度调整,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • vue实现文件上传和下载

    vue实现文件上传和下载

    这篇文章主要为大家详细介绍了vue实现文件上传和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • vue集成百度UEditor富文本编辑器使用教程

    vue集成百度UEditor富文本编辑器使用教程

    这篇文章主要为大家详细介绍了vue集成百度UEditor富文本编辑器的使用教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • vue中过滤器filter的讲解

    vue中过滤器filter的讲解

    今天小编就为大家分享一篇关于vue中过滤器filter的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 浅谈vite和webpack的性能优化和区别

    浅谈vite和webpack的性能优化和区别

    本文主要介绍了浅谈vite和webpack的区别,从性能优化的几个方便讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05

最新评论