vue完整的Axios封装-拦截器、状态码、接口API管理、Loading...手把手教学

前言

Axios 相信对有过Vue开发经验的码农们肯定不陌生,自从Vue2推出之后,官方及尤大佬都推荐使用axios来进行网络请求,但是你以为只是简单引入使用就完了吗,看完对Axios的二次封装别千万吓到你。


准备工作:编译器的选择可以加速代码的开发,这里我们推荐使用 HBuilderX

一、在vue项目中配置Axios

1.下载依赖

代码如下:

npm i axios -S
npm i qs -S // 序列化数据 可以将数据转化为 url参数形式

在这里说明一下:如果只下载axios 会导致数据传输请求的时候无法正常获取数据,需要配合qs进行数据请求,许多铁汁都会在这里踩坑,希望不要被误导。

2.main.js 全局引入

import Axios from "axios"
Vue.prototype.$axios = Axios
import  qs from 'qs'
Vue.prototype.$qs = qs

二、在vue项目中配置Axios

1.封装前与封装后的对比

封装前

axios('http://localhost:9528/data', {
   
  method: 'GET',
  timeout: 1000,
  withCredentials: true,
  headers: {
   
    'Content-Type': 'application/json',
    Authorization: 'xxx',
  },
  transformRequest: [function (data, headers) {
   
    return data;
  }],
  // 其他请求配置...
})
.then((data) =&g
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3中使用axios进行拦截器封装方法如下: 首先,安装axios和@vue/composition-api依赖包: ``` npm install axios @vue/composition-api ``` 然后,在你的项目中创建一个axios.js文件,用于封装axios拦截器逻辑: ```javascript import axios from 'axios'; import { ref } from '@vue/composition-api'; const instance = axios.create({ baseURL: 'https://api.example.com' // 设置请求的基础URL }); // 创建一个ref类型的变量,用于存储当前正在进行的请求数量 const loadingCount = ref(0); // 请求拦截器 instance.interceptors.request.use( config => { // 在请求发送之前,对config进行一些处理,比如添加token等 loadingCount.value++; return config; }, error => { return Promise.reject(error); } ); // 响应拦截器 instance.interceptors.response.use( response => { // 在响应数据返回之前,对response进行一些处理,比如统一错误处理等 loadingCount.value--; return response; }, error => { loadingCount.value--; return Promise.reject(error); } ); export default instance; ``` 接下来,在你的组件中使用该封装好的axios实例: ```javascript import axios from '@/axios'; export default { setup() { // 发起一个请求示例 const fetchData = async () => { try { const response = await axios.get('/data'); console.log(response.data); } catch (error) { console.error(error); } }; return { fetchData }; } }; ``` 这样,你就成功在Vue 3中封装axios拦截器。在请求发起前和响应返回后的拦截器中,你可以根据需要做一些通用的处理,比如添加认证信息、统一错误处理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值