Vue Axios 与 API 调用
在本篇文章中,你将学习如何在 Vue 应用中使用 Axios 发起 HTTP 请求,从远程 API 获取数据。你会了解到如何进行 GET、POST 等常见请求方式,并掌握如何处理响应数据、错误信息,甚至是封装 Axios 实例,以便在项目中更优雅地使用。
什么是 Axios?
Axios 是一个基于 Promise 的 HTTP 客户端,可以在浏览器和 Node.js 中运行。相比原生的 fetch
,它提供了更直观的 API、请求和响应拦截器、自动转换 JSON 数据、取消请求等功能,是 Vue 项目中非常流行的网络请求工具。
Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提供统一接口。它起到代理作用(proxy),充当异步操作与回调函数之间的中介,使得异步操作具备同步操作的接口。Promise 可以让异步操作写起来,就像在写同步操作的流程,而不必一层层地嵌套回调函数。
安装 Axios
如果你使用的是 Vue 3 + Vite 项目,可以通过以下命令安装:
npm install axios
或者使用 Yarn:
yarn add axios
基本使用示例
假设你要从一个公开 API 获取用户数据,可以这样写:
<script setup>
import axios from 'axios'
import { ref, onMounted } from 'vue'
const users = ref([])
onMounted(async () => {
try {
const response = await axios.get('https://jsonplaceholder.typicode.com/users')
users.value = response.data
} catch (error) {
console.error('获取用户数据失败:', error)
}
})
</script>
<template>
<ul>
<li v-for="user in users" :key="user.id">
{{ user.name }}
</li>
</ul>
</template>
说明:
axios.get()
:发起 GET 请求。response.data
:获取返回数据。try...catch
:用于捕获请求中的错误。
POST 请求示例
如果你需要向服务器提交数据,比如创建一个新用户,可以使用 axios.post()
:
const newUser = {
name: 'Alice',
email: 'alice@example.com'
}
axios.post('https://jsonplaceholder.typicode.com/users', newUser)
.then(response => {
console.log('新用户已创建:', response.data)
})
.catch(error => {
console.error('创建用户失败:', error)
})