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没有进行封装复用,项目越来越大,引起的代码冗 ...
随机推荐
- React:form
表单控件: input 文档在介绍控件之前,先提到了react组件自身的一个特点:状态由state掌控,改变组件状态只能用setState方法. 而在html的表单里,input.radio.chec ...
- Objective-C中的加号与减号
在Objective-C中,方法分为类方法和实例方法. 前置加号(+)的方法为类方法,这类方法是可以直接用类名来调用的,它的作用主要是创建一个实例.有人把它称为创建实例的工厂方法. 前置减号(-)的方 ...
- Educational Codeforces Round 56 (Rated for Div. 2) F. Vasya and Array
题意:长度为n的数组,数组中的每个元素的取值在1-k的范围内或者是-1,-1代表这个元素要自己选择一个1-k的数字去填写,然后要求填完的数组中不能出现连续长度大于len的情况,询问填空的方案数. 题解 ...
- poj3249 拓扑找最长路
Test for Job Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 11230 Accepted: 2651 Des ...
- GYM100962A ABBA
题目链接:https://vjudge.net/problem/Gym-100962A 题目大意: 给出一个 \(h \times w\) 的目标矩阵.定义一种 \(h \times w\) 的矩阵, ...
- vue2.0+mint-ui 仿资讯类顶导航内容联动优化
<template><div><div class="navbox"><div class="nav" id=&quo ...
- List的扩容机制,你真的明白吗?
一:背景 1. 讲故事 在前一篇大内存排查中,我们看到了Dictionary正在做扩容操作,当时这个字典的count=251w,你把字典玩的66飞起,其实都是底层为你负重前行,比如其中的扩容机制,当你 ...
- 转 vue动画总结
使用过渡类名(有进入及出去,适合显示隐藏,需要配合v-if) .v-enter,//进入前 .v-leave-to {//离开后 只需要入场动画 可以把v-leave-to删掉 opacity: 0; ...
- Verilog代码和FPGA硬件的映射关系(二)
大家可能会有这样的疑问,我们编写的Verilog代码最终会在FPGA上以怎样的映射关系来实现功能呢?我们以一个最简单的组合逻辑与门为例来向大家说明.RTL代码如下所示: //------------- ...
- [C#] 使 ToolTip 一直显示 (在 WinForm 与 WPF 中的差异解决方案)
需求 自己绘制的UI,检测鼠标位置,适时显示出 ToolTip 1 WinForm 的 ToolTip // Member define: private ToolTip _toolTip = new ...