如何用vue封装axios请求

 更新时间:2021年06月04日 11:15:22   作者:马潇楠  
对axios进行封装以及将API接口按业务模块统一管理,有助于我们简化代码,方便后期维护。本文介绍了如何用vue封装axios请求,感兴趣的同学,可以参考下。

其实vue封装axios是很简单的

首先 在src路径下建http文件夹 并且创建api.js env.js request.js 这三个文件

env.js文件

这个文件主要就是封装我们的公共地址

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

request.js 文件

这里主要就是创建axios 以及封装请求拦截和相应拦截

import axios from "axios";
import env from "./env";
//这里是私有域名  但是也可以不写
var vipUrl = "/app";
// 创建axios实例

const service = axios.create({
//这里拿线上接口测试
baseUrl: env.prod.baseUrl + vipUrl,
    headers:{},//请求头
    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

这个文件中主要是需要的接口地址

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

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

最后是在页面中的引用

那个页面需要请求数据 就引入相应的方法 比如我的首页需要引入banner

<script>
//引入需要的接口
import { getBanners } from "../http/api";
export default {
name: "Home",
components: {},
mounted() {
    //直接使用 .then 是请求成功的回调 .catch是请求失败的回调
    getBanners()
    .then(result => {
        window.console.log("111", result);
    })
    .catch(err => {
        window.console.log("222", err);
    });
},
methods: {}
};
</script>

以上就是如何用vue封装axios请求的详细内容,更多关于用vue封装axios请求的资料请关注脚本之家其它相关文章!

相关文章

  • vue3弹出层V3Popup实例详解

    vue3弹出层V3Popup实例详解

    这篇文章主要介绍了vue3弹出层V3Popup实例详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • vue swipe自定义组件实现轮播效果

    vue swipe自定义组件实现轮播效果

    这篇文章主要为大家详细介绍了vue swipe自定义组件实现轮播效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Vue3中使用富文本编辑器的示例详解

    Vue3中使用富文本编辑器的示例详解

    有不少的前端需求都需要使用到富文本编辑器,所以这篇文章主要来和大家介绍一下如何在Vue3项目中使用富文本编辑器,感兴趣的可以了解下
    2024-04-04
  • 项目中一键添加husky实现详解

    项目中一键添加husky实现详解

    这篇文章主要为大家介绍了项目中一键添加husky实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 使用element组件table表格实现某条件下复选框无法勾选

    使用element组件table表格实现某条件下复选框无法勾选

    这篇文章主要介绍了使用element组件table表格实现某条件下复选框无法勾选问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Vue使用Vue-cropper实现图片裁剪

    Vue使用Vue-cropper实现图片裁剪

    这篇文章主要为大家详细介绍了Vue使用Vue-cropper实现图片裁剪,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Vue enter回车导致页面刷新问题及解决

    Vue enter回车导致页面刷新问题及解决

    这篇文章主要介绍了Vue enter回车导致页面刷新问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • vue中实现div可编辑并插入指定元素与样式

    vue中实现div可编辑并插入指定元素与样式

    这篇文章主要给大家介绍了关于vue中实现div可编辑并插入指定元素与样式的相关资料,文中通过代码以及图文将实现的方法介绍的非常详细,对大家学习或者使用vue具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • 关于全局安装vue-cli遇到的问题及解决

    关于全局安装vue-cli遇到的问题及解决

    这篇文章主要介绍了关于全局安装vue-cli遇到的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 用uniapp写一个好看的登录页面

    用uniapp写一个好看的登录页面

    随着移动互联网的发展,移动端app的使用越来越普及,而对于开发者来说如何设计一款简单易用的app是一项不容忽视的工作,其中登录页面是app使用过程中最基础的组成部分之一,这篇文章主要给大家介绍了关于用uniapp写一个好看的登录页面的相关资料,需要的朋友可以参考下
    2024-03-03

最新评论