什么是axios
axios 是一个基于Promise的 用于浏览器和 nodejs 的 HTTP 客户端。简单的理解就是ajax的封装。他有一下这些特点:
- 从浏览器中创建 XMLHttpRequest
- 从 node.js 发出 http 请求
- 支持 Promise API
- 拦截请求和响应
- 转换请求和响应数据
- 取消请求
- 自动转换JSON数据
- 客户端支持防止 CSRF/XSRF
axios是vue开发中进行网络模块开发时的第一选择。
axios的基本使用
请求方式
我们以axios.(config)请求为例来进行说明。首先先下载axios框架(npm install),然后在文件中(例如main.js)中引入axios,之后就可以在该文件中进行请求的发起。axios是支持promise的,故可以在axios.(config)后直接使用.then函数(成功收到数据后的操作)
import axios from 'axios'
axios({
url:'',
//默认情况下是get请求,若需要设置,则设置method属性
method:'post'
}).then(res=>{
console.log(res);
})
当然,如果嫌设置method麻烦的话,也可以直接使用axios.get()、axios.post()
axios处理并发操作
axios处理并发操作的方式是axios.all()请求:
axios.all([axios({
url:'http://123.207.32.32:8000/home/multidata'
}),axios({
url:'http://123.207.32.32:8000/home/data',
params:{
type:'sell',
page:5
}
})]).then(results =>{
console.log(results);
})
results内容
最后获得的results是一个数组,我们也可以将这个数组进行进行拆分:
axios.all([axios({
url:'http://123.207.32.32:8000/home/multidata'
}),axios({
url:'http://123.207.32.32:8000/home/data',
params:{
type:'sell',
page:5
}
})]).then(axios.spread((res1,res2)=>{
console.log(res1);
console.log(res2);
}))