详解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开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
vue下拉刷新组件的开发及slot的使用详解
Dec 23 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
Vue过滤器,生命周期函数和vue-resource简单介绍
Jan 12 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
原生JS封装vue Tab切换效果
Apr 28 Vue.js
vue+springboot实现登录验证码
May 27 Vue.js
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
一定要知道的 25 个 Vue 技巧
Nov 02 Vue.js
vue项目支付功能代码详解
Feb 18 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 伪造本地文件包含漏洞的代码
2011/11/03 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
解析wamp5下虚拟机配置文档
2013/06/27 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
JavaScript实现拼音排序的方法
2012/11/20 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
Python实现的简单万年历例子分享
2014/04/25 Python
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
django框架auth模块用法实例详解
2019/12/10 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
python中类与对象之间的关系详解
2020/12/16 Python
十八届三中全会报告学习材料
2014/02/17 职场文书
《小儿垂钓》教学反思
2014/02/23 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
学习三严三实心得体会
2014/10/13 职场文书
八一建军节慰问信
2015/02/14 职场文书
党课主持词大全
2015/06/30 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS