Axios的正确食用方法
这里分享出我个人封装的一个axios,我会尽量每行注释,希望对大家有所帮助。
1. 安装
全局执行代码
npm install axios;

2. 编写全局axios文件(附件里有代码)
在src目录中创建一个axios目录,里面创建一个index.js文件

写上全局index.js代码
import axios from 'axios'//引入axios
const methodType = 'get' | 'post' | 'delete' | 'put'//设置全局提交类型
const DataParamsMethod = ['post', 'delete', 'put']//设置数据提交的类型 export class Http { //定义全局http事件
header
httpOpts
constructor() {
this.header = {} //设置访问的header头部
this.httpOpts = { //设置默认的访问参数
method: 'get', //访问类型
noHandleError: false, //访问失败
noHandle401: false, //访问401
noHandle403: false, //访问403
noHandle500: false //访问500
}
} //定义类库中的get事件
get(url, data = {}, opts={}) {
opts.method = 'get' //修改全局提交类型
return this.request(url, data, opts) // 调用方法,开始访问
}
//定义类库中的post事件
post(url, data = {}, opts={}) {
opts.method = 'post'//修改全局提交类型
return this.request(url, data, opts)// 调用方法,开始访问
}
//总访问方法
request(url, data = {}, opts={}) {
opts = { ...this.httpOpts, ...opts } // 导入全局类型等数据
const contentType = 'application/json' //定义返回头头部
return new Promise((resolve, reject) => { //定义promise事件,开始访问
const method = opts.method || 'get' //定义访问类型
void axios({
url, //访问地址
baseURL: process.env.baseURL || process.env.apiUrl || 'https://static.popodv.com', //设置访问前缀,可以设置总访问的前缀
data: data ? data : {},//post设置数据
params: opts.method === 'get' ? data : {},//get设置数据
timeout: 60 * 1000, // 请求超时
headers: {
...this.header, //设置headers头部
'content-type': contentType//设置返回头头部
},
method //设置访问类型
})
.then((res) => { //当有回调时
if (res.status === 200) {
return resolve(res.data) //返回数据
} else if (res.status === 500) { //访问报错,参数问题
return resolve(res.data) //返回数据,方便代码操作
}
})
.catch(err => {//总访问报错
return reject(err)//调用错误回调
})
})
}
}
3. 编写api文件
在src目录中创建一个api目录,里面创建一个index.js文件

写上各个接口的访问代码
// 引入axios封装文件
import { Http } from '@/axios/index.js'
//定义全局axios事件
const axios = new Http() // get方法案例
export function getTest () {
return axios.get('/data/attr/gfs.json')
} // post方法案例
export function postTest (name) {
return axios.post('https://static.popodv.com/data/attr/gfs.json',{
name:name
})
}
4. 页面引用
页面上引入
import {getTest} from '@/api/index.js'
调用代码
async mounted() {
const res = await getTest();
if(res.status == 200){
console.log(res.data)
}
}
效果图:

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

Axios的正确食用方法的更多相关文章
- tcpdump 的正确食用方法
目录 tcpdump 使用笔记 重要报文头 字段表 ip header tcp header 基础使用 高级版本 指定ttl(通过ttl能够确定系统的类型) tcpdump 使用笔记 重要报文头 字段 ...
- vue 使用 axios 时 post 请求方法传参无法发送至后台
axios 时 post 请求方法传参无法发送至后台报错如下 Response to preflight request doesn't pass access control check: No ' ...
- thinkphp3.2 cli模式的正确使用方法
最近要使用thinkphp3.2版本的cli模式,手动执的话没有问题,比如php /www/index.php home/article/get 这样没有问题,但是一般用cli模式都是定时任务比较多, ...
- Linux重启inotify配置max_user_watches无效被恢复默认值8192的正确修改方法
Linux下Rsync+inotify-tools实现数据实时同步中有一个重要的配置就是设置Inotify的max_user_watches值,如果不设置,当遇到大量文件的时候就会出现出错的情况. 一 ...
- MyEclipse10的正确破解方法
无法转载,故给出原文链接,以供需要者. MyEclipse10的正确破解方法
- [转]MySQL忘记密码的正确解决方法
http://database.51cto.com/art/201005/201986.htm 以下的文章主要介绍的是MySQL忘记密码的正确解决方法,在实际操作中如果你忘记MySQL密码是一件很头痛 ...
- webpack快速入门——实战技巧:watch的正确使用方法,webpack自动打包
随着项目大了,后端与前端联调,我们不需要每一次都去打包,这样特别麻烦,我们希望的场景是,每次按保存键,webpack自动为我们打包,这个工具就是watch! 因为watch是webpack自带的插件, ...
- .Net core 下的ConfigurationManager类正确引用方法
大家在项目中经常会用到需要引用配置文件的情况,这也是我偶然间遇到的问题,菜鸟一枚,如有需纠正多谢指点. 正题 在不先引用using的情况下直接写 ConfigurationManager.AppSet ...
- SpringBoot 中 @RequestBody的正确使用方法
SpringBoot 中 @RequestBody的正确使用方法 最近在接收一个要离职同事的工作,接手的项目是用SpringBoot搭建的,其中看到了这样的写法: @RequestMapping(&q ...
随机推荐
- 一文详解 OpenGL ES 3.x 渲染管线
OpenGL ES 构建的三维空间,其中的三维实体由许多的三角形拼接构成.如下图左侧所示的三维实体圆锥,其由许多三角形按照一定规律拼接构成.而组成圆锥的每一个三角形,其任意一个顶点由三维空间中 x.y ...
- 发布项目到maven中央仓库
https://www.xiaominfo.com/2017/04/25/swagger-bootstrap-ui-issue-maven-central/?tdsourcetag=s_pcqq_ai ...
- 一次奇怪的的bug排查过程
公司对底层基础库进行了重构,线上稳定跑了几天,在查看订单系统的log时,有几条error信息非常的奇怪, orderID:80320180 statemachine error: no event [ ...
- Linux终端使用aplay播放wav
Linux终端使用aplay播放wav aplay是一个ALSA的声卡命令行soundfile录音机的驱动程序. 在linux下可以使用下面命令来查看用法: man aplay 所以可以使用来播放.w ...
- 学Web前端开发,选择培训学校是关键--青岛思途
互联网+的提出,催生了Web前端开发行业更大的就业空间,其行业热度也正呈爆炸式增长.专业人才供不应求导致了从业者薪资的居高不下,一般来说Web前端工程师的年薪可达15w以上,工作3~5年后通常可达到1 ...
- [NOI Online #3 提高组] 魔法值
现在只会\(O(qn^3log)\)的\(40pts\)做法,鸽了. 反正就是预处理之后,去掉一个\(n\). 我预处理了,没去\(n\),hhhh,成功减少了一半的常数.
- Atcoder Regular Contest 117 D - Miracle Tree(分析性质+构造)
Atcoder 题面传送门 笑死,阴间语文作业到现在还没写完,为了在这个点保持精神,我只好来颓篇题解辣 我们考虑探究一下怎么最小化 \(\max\limits_{i=1}^nE_i\),我们假设 \( ...
- pcm.x代码分析
简介 运行说明 pcm 监控结果可以分为核心.socket 和系统三部分.在核心监控部分,结果包括如下内容: • EXEC • IPC:每 CPU 周期指令数 • FREQ:普通CPU频率系数 • A ...
- 【Python小试】去除核酸特定长度的接头序列
输入 input.txt ATTCGATTATAAGCTCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATC ATTCGATTATAAGCACTGATCGATCGATCG ...
- C语言中的字符和整数之间的转换
首先对照ascal表,查找字符和整数之间的规律: ascall 控制字符 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 ...