vue axios封装
前言:
对第三方库进行二次封装和抽离到统一模块,项目面对自己的模块进行开发。如果有一天更换库,只需要修改自己模块中的代码,无需对整个项目进行重构。
将axios网络请求库封装到network文件下的request.js中,项目中所有网络请求相关,全部面对request.js开发。
一、vue目录结构

二、封装
import axios from "axios" // 如果换axios框架,只需本页去掉axios相关,导入最新框架,return new Promise()就可以,项目中其他文件依旧正常使用
export function request(config) {
const instance = axios.create({
baseURL: 'http://123.207.32.32:8000',
timeout: 5000
}); // 2. 拦截器(拦截之后进行对应操作,完成操作后需要返回回去)
// 2.1请求拦截
instance.interceptors.request.use(success =>{
// 一般做1. 每次网络请求的时候都希望在界面中显示一个请求图标
// 2. 某些网络请求(比如登录(token)),必须携带一些特殊的信息
console.log(success);
return success // 操作完成后返回回去,不然main里面拿不到
},err =>{
// 发不出去请求的时候到这里,一般不会出现
console.log(err)
}) // 2.2 响应拦截
instance.interceptors.response.use(res =>{
console.log('响应拦截');
console.log(res.data);
return res.data
},err =>{
console.log('拦截服务器响应错误')
console.log(err)
}) // 发送网络请求
return instance(config)
}
三、使用
// 需要网络请求的地方导入,使用
import {request} from "./network/request"; request({
// url: '/home/multidata/aaaaaaaaaaaaa' // 错误请求测试
url: '/home/multidata' }).then(res =>{
console.log('main里面',res);
}).catch(err =>{
console.log("main里面",err);
})
vue axios封装的更多相关文章
- vue axios封装以及登录token过期跳转问题
Axios配置JWT/封装插件/发送表单数据 首先请务必已仔细阅读 Axios 文档并熟悉 JWT: 中文文档 JWT 中文文档 安装 npm install axios npm install es ...
- vue axios 封装(二)
封装二: http.js import axios from 'axios' import storeHelper from './localstorageHelper' // 全局设置 const ...
- vue Axios 封装与配置项
import axios from "axios"; import qs from "qs"; import { Message } from "el ...
- vue(axios)封装,content-type由application/json转换为application/x-www-form-urlencoded
现在主流的http请求头的content-type有三种(不讨论xml): application/x-www-form-urlencoded 最常见的提交数据方式,与原生form表单数据一致,在c ...
- Vue axios封装 实现请求响应拦截
封装 axios.js import axios from 'axios' import { baseURL } from '@/config' class HttpRequest { constru ...
- vue axios 封装(三)
封装三: import axios from 'axios' import { Message, MessageBox } from 'element-ui' import store from '. ...
- vue axios 封装(一)
封装一: 'use strict' import axios from 'axios' import qs from 'qs' import NProgress from 'nprogress' im ...
- vue axios封装以及API统一管理
在vue项目中,每次和后台交互的时候,经常用到的就是axios请求数据,它是基于promise的http库,可运行在浏览器端和node.js中.当项目越来越大的时候,接口的请求也会越来越多,怎么去管理 ...
- 把axios封装为vue插件使用
前言 自从Vue2.0推荐大家使用 axios 开始,axios 被越来越多的人所了解.使用axios发起一个请求对大家来说是比较简单的事情,但是axios没有进行封装复用,项目越来越大,引起的代码冗 ...
随机推荐
- RN概述
一.RN概述 中文网:http://reactnative.cn/ ReactNative:使用JS语法编写移动APP应用,RN会把JS转换为底层Java或OC, 最终运行于手机-------完全不依 ...
- 数据结构----栈stack
栈的概念与数据结构 栈(有时称为“后进先出栈”)是一个元素的有序集合,其中添加移除新元素总发生在同一端.这一端通常称为“顶部”.与顶部对应的端称为“底部”.栈的底部很重要,因为在栈中靠近底部的元素是存 ...
- OGG应用进程abend报错无法insert虚拟列
环境11.2.0.4 linux6.9 RAC2节点,ogg版本Version 12.2.0.1.160823 OGGCORE_OGGADP.12.2.0.1.0_PLATFORMS_161019.1 ...
- BZOJ1021
转载:http://www.cnblogs.com/Asm-Definer/p/4372749.html 1021: [SHOI2008]Debt 循环的债务 Time Limit: 1 Sec M ...
- HDU2859
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2859 AC思路:(思路来源于kuangbin,甚至做法也跟kuangbin大同小异,所以可以将本文看成 ...
- tomcat依赖--linux
https://tomcat.apache.org/download-90.cgi 下载 3,解压到usr/locat/tomcat 创建usr/local/tomcat Mkdir /usr/loc ...
- Mysql数值类型,小数点后保留两个零
如有不足请帮忙留言区补充谢谢~ 一,数值类型保留小数点后两个0 在存入数据时,应客户需求数值类型,比如钱数,分数等等需要精确到小数点后几位. 800存入时显示为800.00 方法:在建表时直接定义此数 ...
- 用 CSS Grid 布局制作一个响应式柱状图
最新一段时间比较喜欢玩弄图表,出于好奇,我想找出比较好的用 CSS 制作图表的方案.开始学习网上开源图表库,它对我学习新的和不熟悉的前端技术很有帮助,比如这个:CSS Grid. 今天和大家分享我学到 ...
- [JavaWeb基础] 029.OGNL表达式介绍
1.OGNL概述 OGNL,全称为Object-Graph Navigation Language,它是一个功能强大的表达式语言,用来获取和设置Java对象的属性,它旨在提供一个更高的更抽象的层次来对 ...
- 设计并测试Trapezium类 代码参考
#include <iostream> using namespace std; class Trapezium { private: int x1,y1,x2,y2,x3,y3,x4,y ...