当前位置: 首页 > article >正文

Vue.js教学第十七章:Vue 与后端交互(一),Axios 基础

Vue 与后端交互(一):Axios 基础

在现代前端开发中,Vue 应用通常需要与后端 API 进行数据交互,以实现动态数据的获取和提交。Axios 是一个基于 Promise 的 HTTP 客户端,广泛用于 Vue 项目中与后端进行通信。本文将深入讲解 Axios 的基本用法,包括如何通过 Axios 发送 GET、POST 等不同类型的 HTTP 请求,与后端 API 进行数据交互,以及 Axios 的配置选项和基本使用示例。


一、Axios 简介

(一)定义

Axios 是一个开源的 JavaScript 库,支持浏览器和 node.js,用于进行 HTTP 请求。它基于 Promise 设计,具有简洁易用的 API,支持请求和响应的拦截、请求取消、自动转换 JSON 数据等诸多实用功能。

(二)特点

  • 基于 Promise :Axios 的所有请求方法都返回 Promise 对象,使得异步操作可以链式调用,代码更加简洁易读。

  • 拦截请求和响应 :可以在请求发送前和响应返回后进行拦截处理,如添加认证头信息、处理全局的错误信息等。

  • 转换请求和响应数据 :自动转换 JSON 数据,也可以自定义数据转换规则。

  • 取消请求 :允许在请求发送后取消请求,节省资源。

  • 支持多种环境 :可以在浏览器和 node.js 中使用。

  • 简洁的 API :提供了易于使用的 API,简化了 HTTP 请求的发送和处理。


二、Axios 的安装

(一)通过 npm 安装

在 Vue 项目中,推荐通过 npm 安装 Axios:

npm install axios

(二)通过 CDN 引入

在 HTML 文件中通过 CDN 引入 Axios:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

三、Axios 基本用法

(一)发送 GET 请求

GET 请求用于从服务器获取资源。

// 基本 GET 请求
axios.get('https://api.example.com/users').then(response => {console.log(response.data); // 获取响应数据}).catch(error => {console.error('GET 请求失败:', error);});// 带参数的 GET 请求
axios.get('https://api.example.com/users', {params: {page: 1,limit: 10}}).then(response => {console.log(response.data);}).catch(error => {console.error('带参数 GET 请求失败:', error);});

(二)发送 POST 请求

POST 请求用于向服务器提交数据,通常用于创建新资源。

// 基本 POST 请求
axios.post('https://api.example.com/users', {name: 'John Doe',email: 'john@example.com',age: 30}).then(response => {console.log(response.data);}).catch(error => {console.error('POST 请求失败:', error);});// 设置请求头
axios.post('https://api.example.com/users', JSON.stringify({name: 'John Doe',email: 'john@example.com',age: 30}), {headers: {'Content-Type': 'application/json'}}).then(response => {console.log(response.data);}).catch(error => {console.error('带请求头 POST 请求失败:', error);});

(三)发送 PUT 请求

PUT 请求用于更新服务器上的现有资源。

axios.put('https://api.example.com/users/1', {
http://www.lryc.cn/news/2396223.html

相关文章:

  • 人工智能浪潮下,制造企业如何借力DeepSeek实现数字化转型?
  • NodeJS全栈开发面试题讲解——P2Express / Nest 后端开发
  • 从线性代数到线性回归——机器学习视角
  • 计算机网络相关发展以及常见性能指标
  • 通义灵码:基于MCP的火车票小助手系统全流程设计与技术总结
  • 为什么建立 TCP 连接时,初始序列号不固定?
  • VBA数据库解决方案二十:Select表达式From区域Where条件Order by
  • NX753NX756美光科技闪存NX784NX785
  • 使用 pytesseract 构建一个简单 OCR demo
  • Cesium快速入门到精通系列教程三:添加物体与3D建筑物
  • git 如何解决分支合并冲突(VS code可视化解决+gitLab网页解决)
  • 【CF】Day72——Codeforces Round 890 (Div. 2) CDE1 (二分答案 | 交互 + 分治 | ⭐树上背包)
  • 单片机寄存器的四种主要类型!
  • 智能嗅探AJAX触发:机器学习在动态渲染中的创新应用
  • 【计算机网络】Linux下简单的UDP服务器(超详细)
  • Java并发编程实战 Day 3:volatile关键字与内存可见性
  • 华为OD机试真题——报文回路(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • K8s工作流程与YAML实用指南
  • 功能丰富的PDF处理免费软件推荐
  • Java补充(Java8新特性)(和IO都很重要)
  • pycharm debug的时候无法debug到指定的位置就停住不动了
  • 分布式流处理与消息传递——Kafka ISR(In-Sync Replicas)算法深度解析
  • 极大似然估计例题——正态分布的极大似然估计
  • Pull Request Integration 拉取请求集成
  • OS10.【Linux】yum命令
  • 头歌数据库课程实验(角色管理)
  • 【android bluetooth 协议分析 03】【蓝牙扫描详解 1】【扫描关键函数 btif_dm_search_devices_evt 分析】
  • SpringBoot使用ThreadLocal保存登录用户信息
  • 多模态大语言模型arxiv论文略读(102)
  • Ubuntu系统如何部署Crawlab爬虫管理平台(通过docker部署)