一个axios的简单教程

转载自https://www.jianshu.com/p/13cf01cdb81f

收录学习

首先要明白的是axios是什么:axios是基于promise(诺言)用于浏览器和node.js是http客户端。

axios的作用是什么呢:axios主要是用于向后台发起请求的,还有在请求中做更多是可控功能。

特点:支持浏览器和node.js

            支持promise

            能拦截请求和响应

            能转换请求和响应数据

            能取消请求

            自动转换JSON数据

             浏览器支持防止CSRF(跨站请求伪造)

这里你一定会想promise是什么东西,以下是promise的个人理解:

promise是什么:是一个对象用来传递异步操作的信息,它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的api,可供进一步的处理。

promise的作用:Promise的出现主要是解决地狱回调的问题,比如你需要结果需要请求很多个接口,这些接口的参数需要另外那个的接口返回的数据作为依赖,这样就需要我们一层嵌套一层,但是有了Promise 我们就无需嵌套。

promise的本质是什么:分离异步数据获取和业务

基本使用方法:

axios执行GET请求

GET 请求方法

执行POST请求

POST请求方法

执行多个并发请求

多个并发请求

get和post都是基于promise的所以写法上很相似,是用then和catch,使用这种方法来进行发送请求。

还有一个axios重要的知识点就是拦截器

拦截器

在请求或响应被 then 或 catch 处理前拦截它们(拦截器可以做什么:在请求或者响应时拦截下来进行处理)

拦截器分为请求拦截器和响应拦截器

请求拦截器(interceptors.requst)是指可以拦截每次或指定HTTP请求,并可修改配置项。

响应拦截器(interceptors.response)可以在每次HTTP请求后拦截住每次或指定HTTP请求,并可修改返回结果项。

 

拦截器的写法

拦截器的工作流程:

拦截器工作流程

移除拦截器

移除拦截器

自定义 axios 实例添加拦截器

添加拦截器

取消

使用 cancel token 取消请求

可以使用 CancelToken.source 工厂方法创建 cancel token

参考资料:axios中文文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue3中配置axios有多种方法,可以根据你的具体需求选择适合你的方式。以下是一些常用的配置方法: 方法一:在main.js中直接挂载axios 如果只需要简单地使用几个页面,无需太过复杂的配置,可以直接在main.js中进行挂载。首先,需要下载axios,可以使用以下命令: ``` npm i axios ``` 或者 ``` yarn add axios ``` 然后,在main.js中引入axios,并将其挂载为Vue的原型属性: ```javascript import Vue from "vue"; import axios from 'axios' Vue.prototype.$http = axios ``` 接下来,你可以通过`this.$http`来进行axios的请求。 方法二:使用Composition API 如果你正在使用Composition API,可以使用getCurrentInstance方法来获取当前实例,并通过该实例获取全局实例的配置。首先,需要在页面中引入相关的Composition API方法: ```javascript import { reactive, onMounted, getCurrentInstance } from "vue"; ``` 然后,在setup函数中使用getCurrentInstance方法获取当前实例,并通过该实例获取全局实例的config.globalProperties。具体代码如下: ```javascript setup() { let data = reactive([]); const currentInstance = getCurrentInstance(); const { $axios } = currentInstance.appContext.config.globalProperties; const getData = async () => { data = await $axios({ url: "/one/data" }); console.log("data", data); }; onMounted(() => { getData(); }); return { getData }; }, ``` 这样,在页面中就可以通过`$axios`来进行axios的请求。 方法三:使用拦截器 如果需要添加拦截器,可以在axios.js中进行配置。首先,创建一个axios实例,并进行相关的配置: ```javascript import axios from "axios"; const initAxios = axios.create({ timeout: 1800000 //设置数据响应过期时间 }); // 请求拦截器 initAxios.interceptors.request.use( (config) => { // 在发送之前做点什么 return config; }, (error) => { // 对请求错误做点什么 return error; } ); // 响应拦截器 initAxios.interceptors.response.use( (response) => { if (response.resultCode === 200) { return response.data; } else { return { resultCode: -1 }; } } ); export default () => initAxios; ``` 然后,在需要使用axios的地方引入该配置文件,并调用函数获取配置好的axios实例: ```javascript import initAxios from "./axios"; const axiosInstance = initAxios(); ``` 现在,你可以使用`axiosInstance`进行axios的请求,并且拦截器已经生效。 以上是一些常用的Vue3配置axios的方法,你可以根据具体情况选择适合你的方式进行配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Vue3中全局配置 axios 的两种方式](https://blog.csdn.net/weixin_56650035/article/details/125610295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [Vue3使用axios的配置教程详解](https://blog.csdn.net/qq_38682174/article/details/125416084)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值