axios是什么
根据菜鸟教程的定义,axios是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。一句话解释觉着有点抽象,就举例axios是用来干什么的,比较方便理解。
Axios可以用来:支持Promise API、拦截请求和响应、取消请求、自动转换JSON数据,还是不理解,接着往下看。
为什么要有axios
为什么会有Axios?说到Axios我们可以从Ajax开始说起。最初的旧浏览器页面在向服务器请求数据时,由于返回的是整个页面的数据,所以整个页面都会强制刷新一下,这对于用户来讲并不是很友好。因为当我们只需要请求部分数据时,服务器返回给我们的确是整个页面的数据,这样会造成网络资源的占用,即十分消耗网络资源。为了提高数据请求效率,异步网络请求Ajax就应运而生了,它可以在页面无刷新的情况下请求数据。因此,这样一来,当我们只是需要修改页面的部分数据时,可以实现不刷新页面的功能。(从别人那里学习到的)
axios如何使用
安装
使用cdn
或
使用npm
$ npm install axios
使用 bower
$ bower install axios
使用yarn
$ yarn add axios
axios基础用法(get、post、put 等请求方法)
Axios常用的几种请求方法:get,post,put,patch,delete
get:常用来获取数据post:常用来提交数据(表单提交与文件上传)put:更新数据(只将修改的数据推送到后端(服务端))patch:更新数据(所有数据推送到服务端)delete:删除数据
get
模式一:基于Promise机制处于异步操作的结果
.then() 和 .catch() 是用于处理基于 Promise 的异步操作的结果。Axios 的方法(如 axios.get()、axios.post() 等)返回一个 Promise,因此需要使用 .then() 和 .catch() 来处理请求的成功响应和错误。
axios.get ('https://www.runoob.com/try/ajax/json_demo.json')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
这不是固定的结构,但它是处理 Axios 请求的常见模式。你也可以使用 async/await 语法来处理 Promise,使代码更简洁:
模式二:async/await 语法
async Function (){
const response = await axios.get('https://api.example.com/data');
console.log(response.data)
}
后续想要添加错误处理,可以使用try,catch方法
async function() {
try {
const response = await axios.get('https://api.example.com/data');
console.log(response.data);
} catch (error) {
console.error('Error fetching data:', error);
}
}
async/await 模式可以使异步代码更易于阅读和维护。await 关键字用于等待 Promise 解析
post
axios.post('https://api.example.com/data', {
title: 'foo',
body: 'bar',
userId: 1
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
put
axios.put('https://api.example.com/data/1', {
title: 'foo',
body: 'baz',
userId: 1
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
patch
axios.patch('https://api.example.com/data/1', {
title: 'updated title'
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
axios.request() 发送不同类型的请求
使用 axios.request() 方法,可以自定义请求配置:
axios.request({
method: 'post',
url: 'https://api.example.com/data',
data: {
title: 'foo',
body: 'bar',
userId: 1
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
axios.request() 是一个非常灵活的方法,可以通过配置对象来发送任何类型的 HTTP 请求。它允许你自定义请求方法、URL、请求头、请求体、查询参数等,适合需要精细控制请求的场景。无论是获取数据、提交数据、更新数据还是删除数据,都可以使用 axios.request() 来实现。
新手小白的见解,向读者推荐Axios使用方法详解,从入门到进阶-CSDN博客