Vue如何封装axios请求

Vue封装Axios请求的具体步骤

实际开发过程中,我们项目可能会有大量接口,因此我们写代码的时候,如果不进行封装,则会产生大量冗余代码,API的封装,封装之后便于后期统一维护管理
一.在src文件夹下新建config文件夹并在此文件夹中新建api,env,http,三个文件
如图所示:
在这里插入图片描述
env.js这个文件封装我们的公共地址

  export default {
       // 开发环境
       dev: {
         baseUrl: "开发环境公共地址"
       },
       //   测试环境test
       test: {
         baseUrl: "测试环境公共地址"
       },
       //线上接口
       prod: {
         baseUrl: "线上环境公共地址"
       }
     };

http.js创建axios封装请求拦截和响应拦截

import axios from 'axios';
// import { config } from 'vue/types/umd';
import env from "./env.js"

const service = axios.create({
    baseURL: env.prod.baseURL,
    headers: { 'Content-Type': 'application/x-www-from-urlencoded' },
    settimeout: 2000,
})
// 添加请求拦截
service.interceptors.request.use(
    config => {
        // 在发送请求前都做些什么
        // 配置请求时参数
        // config.headers['deviceType'] = 'H5';
        console.log('请求的数据', config);
        return config;
    },
    error => {
        // 对请求错误做些什么
        return Promise.reject("出错", error);
    }
);

// 添加响应拦截器
service.interceptors.response.use(
    response => {
        // 对相应数据做些什么
        console.log("返回的数据", response);
        return response;
    },
    error => {
        // 对响应错误做点什么
        return Promise.reject(error);
    }
);
export default service;

api.js封装我们的接口函数

//引入http.js文件
import http from "./http.js";

// 示例
export function getexp(data) {
  return http({
    url: "http://jsonplaceholder.typicode.com/posts",//这个地址是去掉公共地址和私有域名之后剩下的地址
    method: "GET",//请求方式 支持多种方式  get post put delete 等等
    data//发送请求要配置的参数 无参数的情况下也可以不写
  });
}

二.在页面中引入使用

import {getexp} from "../config/api";
 mounted() {
        getexp()
            //直接使用 .then 是请求成功的回调 .catch是请求失败的回调
            .then((res) => {
                console.log(res);
            })
            .catch((err) => {
                console.log("错误提示", err);
            });
    },

Vue封装axios就完成喽

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值