什么是axios,为什么选择axios以及axios的基本使用

3,503 阅读1分钟

什么是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);
}))