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 ...
随机推荐
- vue 3 学习笔记 (八)——provide 和 inject 用法及原理
在父子组件传递数据时,通常使用的是 props 和 emit,父传子时,使用的是 props,如果是父组件传孙组件时,就需要先传给子组件,子组件再传给孙组件,如果多个子组件或多个孙组件使用时,就需要传 ...
- spring-整合es
spring-整合es 导入pom <?xml version="1.0" encoding="UTF-8"?> <project xmln ...
- Jenkins系列-权限管理
在实际工作中,存在多个团队都需要Jenkins来实现持续交付,但是又希望不同团队之间进行隔离,每个项目有自己的view, 只能看到自己项目的jenkins job. 但是,jenkins默认的权限管理 ...
- 联盛德 HLK-W806 (三): 免按键自动下载和复位
目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...
- Kafka从入门到放弃(一) —— 初识Kafka
消息中间件的使用已经越来越广泛,基本上具有一定规模的系统都会用到它,在大数据领域也是个必需品,但为什么使用它呢?一个技术的广泛使用必然有它的道理. 背景与问题 以前一些传统的系统,基本上都是" ...
- 【GS文献】从家畜到植物,通过基因组选择提高遗传增益
目录 说明 1.前言 2.植物GS瓶颈 3.提高GS预测的准确性 4.GS与现代育种技术结合 5.GS开源育种网络 说明 Enhancing Genetic Gain through Genomic ...
- Windows下的Python多版本管理?
虽然接触了好几年python,但一些细节没有注意.最近看网课,看到这个Windows系统下Python多版本管理的问题,记录下备忘. 假设现在windows环境中有python2,python3和an ...
- ZAQI
mysql> CREATE TABLE emploee ( -> name CHAR(64) NOT NULL, -> email CHAR(64), -> password ...
- 前端1 — HTML — 更新完毕
1.首先来了解一个东西 -- W3C标准( 全称是:World Wide Web Consortium ) 万维网联盟(外语缩写:W3C)标准不是某一个标准,而是一系列标准的集合 -- 这个其实每天都 ...
- web自动化,selenium环境配置
1,首先我们需要在python编译器中添加selenium插件,我用的是pycharm 点击下方的Terminal,然后在命令行输入: pip install selenium 也可以在设置里面手动添 ...