详解Vue3使用axios的配置教程


Posted in Vue.js onApril 29, 2022

axios中文网站:axios-http.com/zh/

一、安装axios

npm install axios --save

二、配置axios,添加拦截器

在src目录下新建一个request文件夹,在里面新建index.ts(或者.js)文件,编辑代码如下:

import axios from 'axios'
// 创建一个 axios 实例
const service = axios.create({
	baseURL: '/api', // 所有的请求地址前缀部分
	timeout: 60000, // 请求超时时间毫秒
	withCredentials: true, // 异步请求携带cookie
	headers: {
		// 设置后端需要的传参类型
		'Content-Type': 'application/json',
		'token': 'your token',
		'X-Requested-With': 'XMLHttpRequest',
	},
})

// 添加请求拦截器
service.interceptors.request.use(
	function (config) {
		// 在发送请求之前做些什么
		return config
	},
	function (error) {
		// 对请求错误做些什么
		console.log(error)
		return Promise.reject(error)
	}
)

// 添加响应拦截器
service.interceptors.response.use(
	function (response) {
		console.log(response)
		// 2xx 范围内的状态码都会触发该函数。
		// 对响应数据做点什么
		// dataAxios 是 axios 返回数据中的 data
		const dataAxios = response.data
		// 这个状态码是和后端约定的
		const code = dataAxios.reset
		return dataAxios
	},
	function (error) {
		// 超出 2xx 范围的状态码都会触发该函数。
		// 对响应错误做点什么
		console.log(error)
		return Promise.reject(error)
	}
)
export default service

三、使用axios发送请求

在src目录下新建一个apis文件夹,这里面放入今后所有的请求文件,例如新建一个请求用户信息的接口user.ts,代码如下:

// 导入axios实例
import httpRequest from '@/request/index'

// 定义接口的传参
interface UserInfoParam {
	userID: string,
	userName: string
}

// 获取用户信息
export function apiGetUserInfo(param: UserInfoParam) {
    return httpRequest({
		url: 'your api url',
		method: 'post',
		data: param,
	})
}

接着在具体业务页面里使用这个请求,例如:

<script setup lang="ts">
import { onMounted } from 'vue'
import { apiGetUserInfo } from '@/apis/user'
function getUserInfo() {
	const param = {
		userID: '10001',
		userName: 'Mike',
	}
	apiGetUserInfo(param).then((res) => {
		console.log(res)
	})
}
onMounted(() => {
	getUserInfo()
})
</script>

附:Vue3 中全局引入 axios

main.js中

import axios from 'axios'
const app = createApp(App) // 将默认改写为这样
app.provide('$axios', axios)

组件内使用axios(compositionAPI)

<script setup>
    import { inject } from 'vue'
    const $axios = inject('$axios')
    $axios.get('https://api.github.com/users').then((resp) => {    
      console.log(resp.data)
    }).catch((err) => {
      console.log(err)
    })
</script>

总结

到此这篇关于Vue3使用axios的配置的文章就介绍到这了!


Tags in this post...

Vue.js 相关文章推荐
vue 插槽简介及使用示例
Nov 19 Vue.js
如何实现vue的tree组件
Dec 03 Vue.js
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
详解Vue中的自定义指令
Dec 07 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
vue监听滚动事件的方法
Dec 21 Vue.js
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
vue3自定义dialog、modal组件的方法
Jan 04 Vue.js
Vuex实现简单购物车
Jan 10 Vue.js
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
vue中 this.$set的使用详解
Nov 17 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
vue生命周期钩子函数以及触发时机
Apr 26 #Vue.js
vue里使用create, mounted调用方法
vue elementUI批量上传文件
Apr 26 #Vue.js
vue.js 使用原生js实现轮播图
Apr 26 #Vue.js
如何vue使用el-table遍历循环表头和表体数据
vue 把二维或多维数组转一维数组
Apr 24 #Vue.js
Vue OpenLayer 为地图绘制风场效果
Apr 24 #Vue.js
You might like
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
js加强的经典分页实例
2013/03/15 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
python判断设备是否联网的方法
2018/06/29 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
python sleep和wait对比总结
2021/02/03 Python
什么是方法的重载
2013/06/24 面试题
优秀社区干部事迹材料
2014/02/03 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
环保倡议书100字
2014/05/15 职场文书
2014教师党员个人自我评议
2014/09/20 职场文书
大学生团员个人总结
2015/02/14 职场文书
课改心得体会范文
2016/01/25 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
节约用水广告语60条
2019/11/14 职场文书