Axios

本文介绍了在大型Vue项目中为提高效率和维护性对axios进行封装的方法,包括创建http服务文件、设置请求和响应拦截器,以及在app.js中导出定制的接口函数供页面使用,以此简化请求操作并统一错误处理。
摘要由CSDN通过智能技术生成

一.为什么要对axios封装?

axios 封装了原生的 XHR,让我们发送请求更为简单,但假设在一个成百上千个 vue 文件的项目中,我们每一个 vue 文件都要写 axios.get()或 axios.post() 岂不是很麻烦?后期的维护也不方便,所以我们要对 axios 进行进一步的封装。

二.怎样封装?

       1. 在src下面新建一个http文件夹

        (1)新建一个service文件

        (2)导入axios包及vant中Toast组件            

import axios from 'axios';
import {Toast} from 'vant';

        (3)创建axios、baseUrl、与超时时间

//1 创建axios baseURL 超时时间
const service = axios.create({
    baseURL:"https://api.it120.cc/small4",
    timeout: 5000,
})

        (4)设置请求拦截器

//2 请求
service.interceptors.request.use(
    (config) => {
           Toast.loading({//loading
            message: '加载中...',
            forbidClick: true,
            duration:30000,
          });
 
        return config
    }, (error) => {//捕获错误信息
        return Promise.reject(error)
    })

        (5)设置响应拦截器

//3 响应
service.interceptors.response.use(
    (response) => {
        
        Toast.clear()//关闭loading
        return Promise.resolve(response)
    }, (error) => {
        return Promise.reject(error)//对数据进一步处理
    })

        (6)通过export导出


export default service

        总:

import axios from 'axios'
import {Toast} from "vant"
 
//1 创建axios baseURL 超时时间
const service = axios.create({
    baseURL:"https://api.it120.cc/small4",
    timeout: 5000,
})
//2 请求
service.interceptors.request.use(
    (config) => {
           Toast.loading({//loading
            message: '加载中...',
            forbidClick: true,
            duration:30000,
          });
 
        return config
    }, (error) => {//捕获错误信息
        return Promise.reject(error)
    })
//3 响应
service.interceptors.response.use(
    (response) => {
        
        Toast.clear()//关闭loading
        return Promise.resolve(response)
    }, (error) => {
        return Promise.reject(error)//对数据进一步处理
    })
//4 导出
export default service

2.在新建一个app.js文件

export function smsCode(参数名){
    return service({
        url:接口地址,
        data:参数名,
        method:请求参数
    })
}

3.在页面中使用

import { 方法名:如smsCode } from "@/http/api";

   async  方法名(){
               let res=await smsCode()
        }

        console.log(res) log一下

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值