前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >axios的安装和使用

axios的安装和使用

作者头像
全栈程序员站长
发布2022-11-03 15:21:06
2.7K0
发布2022-11-03 15:21:06
举报
文章被收录于专栏:全栈程序员必看
在这里插入图片描述
在这里插入图片描述

文章目录

一、axios介绍

什么是 axios? Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。 特性: 1、从浏览器中创建 XMLHttpRequests 2、从 node.js 创建 http 请求 3、支持 Promise API 4、拦截请求和响应 5、转换请求数据和响应数据 6、取消请求 7、自动转换 JSON 数据 8、客户端支持防御 XSRF

浏览器支持:

在这里插入图片描述
在这里插入图片描述

二、安装axios

  1. 方法一:速度慢
代码语言:javascript
复制
npm install axios -g

  1. 方法二:速度快
代码语言:javascript
复制
cnpm install axios -g

参数说明: -g:表示全局安装,将会安装在你配置的:C:\Users\XinLiu\nodejs\node_global目录下。如果不指定则为当前文件夹所在目录(局部);

安装成功后如下所示:

在这里插入图片描述
在这里插入图片描述

3. 无需安装,直接使用cdn

代码语言:javascript
复制
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

三、 案例

  1. 执行 GET 请求
代码语言:javascript
复制
// 为给定 ID 的 user 创建请求
axios.get('/user?ID=12345')
.then(function (response) { 

console.log(response);
})
.catch(function (error) { 

console.log(error);
});
// 上面的请求也可以这样做
axios.get('/user', { 

params: { 

ID: 12345
}
})
.then(function (response) { 

console.log(response);
})
.catch(function (error) { 

console.log(error);
});
  1. 执行 POST 请求
代码语言:javascript
复制
axios.post('/user', { 

firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) { 

console.log(response);
})
.catch(function (error) { 

console.log(error);
});
  1. 执行多个并发请求
代码语言:javascript
复制
function getUserAccount() { 

return axios.get('/user/12345');
}
function getUserPermissions() { 

return axios.get('/user/12345/permissions');
}
axios.all([getUserAccount(), getUserPermissions()])
.then(axios.spread(function (acct, perms) { 

// 两个请求现在都执行完成
}));

四、框架整合

1、整合vue-axios

基于vuejs 的轻度封装

1.1 安装vue-axios

代码语言:javascript
复制
cnpm install --save axios vue-axios -g //-g:全局安装

1.2 将下面代码加入入口文件:

代码语言:javascript
复制
import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, axios)

按照这个顺序分别引入这三个文件: vue, axios and vue-axios

1.3 你可以按照以下方式使用:

代码语言:javascript
复制
Vue.axios.get(api).then((response) => { 

console.log(response.data)
})
this.axios.get(api).then((response) => { 

console.log(response.data)
})
this.$http.get(api).then((response) => { 

console.log(response.data)
})

五、插件

  1. axios-retry

Axios 插件 重试失败的请求

1.1 安装

代码语言:javascript
复制
cnpm install axios-retry -g //-g:全局安装

1.2 使用

代码语言:javascript
复制
// CommonJS
// const axiosRetry = require('axios-retry');
// ES6
import axiosRetry from 'axios-retry';
axiosRetry(axios, { 
 retries: 3 });
axios.get('http://example.com/test') // The first request fails and the second returns 'ok'
.then(result => { 

result.data; // 'ok'
});
// Exponential back-off retry delay between requests
axiosRetry(axios, { 
 retryDelay: axiosRetry.exponentialDelay});
// Custom retry delay
axiosRetry(axios, { 
 retryDelay: (retryCount) => { 

return retryCount * 1000;
}});
// 自定义 axios 实例
const client = axios.create({ 
 baseURL: 'http://example.com' });
axiosRetry(client, { 
 retries: 3 });
client.get('/test') // 第一次请求失败,第二次成功
.then(result => { 

result.data; // 'ok'
});
// 允许 request-specific 配置
client
.get('/test', { 

'axios-retry': { 

retries: 0
}
})
.catch(error => { 
 // The first request fails
error !== undefined
});

注意:除非 shouldResetTimeout被设置, 这个插件将请求超时解释为全局值, 不是针对每一个请求,二是全局的设置。

1.3 测试 克隆这个仓库 然后 执行:

代码语言:javascript
复制
cnpm test
  1. vue-axios-plugin

Vuejs 项目的 axios 插件

2.1 安装

可以通过script标签引入,无需安装:

代码语言:javascript
复制
<!-- 在 vue.js 之后引入 -->
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vue-axios-plugin"></script>
代码语言:javascript
复制
cnpm install --save vue-axios-plugin -g //-g:全局安装

然后在入口文件配置如下:

代码语言:javascript
复制
import Vue from 'Vue'
import VueAxiosPlugin from 'vue-axios-plugin'
Vue.use(VueAxiosPlugin, { 

// 请求拦截处理
reqHandleFunc: config => config,
reqErrorFunc: error => Promise.reject(error),
// 响应拦截处理
resHandleFunc: response => response,
resErrorFunc: error => Promise.reject(error)
})

2.2 示例 在 Vue 组件上添加了 $http 属性, 它默认提供 get 和 post 方法,使用如下:

代码语言:javascript
复制
this.$http.get(url, data, options).then((response) => { 

console.log(response)
})
this.$http.post(url, data, options).then((response) => { 

console.log(response)
})

你也可以通过 this.$axios 来使用 axios 所有的 api 方法,如下:

代码语言:javascript
复制
this.$axios.get(url, data, options).then((response) => { 

console.log(response)
})
this.$axios.post(url, data, options).then((response) => { 

console.log(response)
})

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/201105.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、axios介绍
  • 二、安装axios
  • 三、 案例
  • 四、框架整合
  • 五、插件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档