Vue 3 中安装并使用 Axios 详细步骤+样例代码详解
创始人
2025-01-08 11:36:58
0

axios详细步骤

  1. 在集成终端打开,使用 npm 或 yarn 安装 Axios:

    npm install axios 

    yarn add axios 

    这将在您的项目中安装 Axios。

  2. 在您的 Vue 3 项目中创建一个用于发送 HTTP 请求的模块或文件,比如 http.js

  3. 在 http.js 文件中导入 Axios:

    import axios from 'axios'; 
  4. 创建一个 Axios 实例,并进行必要的配置。您可以根据需要添加全局的默认配置和拦截器等。以下是一个简单的示例:

    const http = axios.create({   baseURL: 'http://api.example.com', // 设置基础 URL   // 其他配置... }); 

    这里的 baseURL 是可选的,根据您的需要进行设置。

  5. 在需要发送请求的组件中导入 http.js 并使用创建的 Axios 实例发送请求。例如,在组件的方法中使用 http 对象发送 HTTP 请求:

    import http from './http';  // ...  methods: {   fetchData() {     http.get('/api/data')       .then(response => {         // 处理成功的响应         console.log(response.data);       })       .catch(error => {         // 处理错误         console.error(error);       });   } } 

    这里的 /api/data 是您具体的请求路径,根据您的后端 API 进行设置。

axios代码详解

import axios from 'axios';

import axios from 'axios' 是 ES6 模块语法的一种形式,它用于导入一个名为 axios 的 JavaScript 模块。

axios 是一个流行的基于 Promise 的 HTTP 客户端,可以用于与后端服务器进行通信,发送 GET、POST、PUT、DELETE 等 HTTP 请求。它简化了向 RESTful API 发送异步请求的过程,并且可以在浏览器和 Node.js 环境下使用。如果要使用它,需要通过 NPM 或 CDN 引入相应的 axios 库或模块。

在这里,通过 import 语句导入了 axios 模块,可以在代码中调用 axios 的方法,发送 HTTP 请求获取数据。例如,可以在组件的 mounted 生命周期钩子函数中调用 axios.get() 方法发送一个 HTTP GET 请求来获取数据,然后将返回的数据设置到组件的数据中,从而使得数据能够渲染到页面上。

const requestInstance = axios.create({     baseURL: 'http://106.14.120.88:6666/api/',   });

这段代码使用 axios.create() 方法创建了一个名为 requestInstance 的 axios 实例。

通过 axios.create() 方法可以创建一个独立的 axios 实例,该实例可以具有自己的配置和默认选项,以及与全局的 axios 实例保持分离。这样可以灵活地使用不同的配置和选项来发送 HTTP 请求。

在这个实例中,配置对象包含了一个 baseURL 属性,它指定了请求的基础 URL。在这个例子中, baseURL 设置为 ‘http://106.14.120.88:6666/api/’,说明请求将会发送到远程服务器的 ‘http://106.14.120.88:6666/api/’ 路径下。

使用 baseURL 选项可以简化每个请求中的 URL 拼接,以及便于在多个请求中共享相同的基础 URL。

通过创建 requestInstance 实例,您可以在后续的代码中使用该实例来发送具有相同基础 URL 的请求,而无需重复设置每个请求的 URL。例如,可以使用 requestInstance.get('/users') 来发送一个 GET 请求到 ‘/api/users’ 路径。

requestInstance.interceptors.response.use(   function (response) {     const { code, message, data } = response.data;     if (code === 100) {       return data;     }     return Promise.reject(message);   },   function (error) {     return Promise.reject(error);   } );

这段代码使用 requestInstance.interceptors.response.use() 方法给 requestInstance 实例添加了一个响应拦截器。

响应拦截器是在接收到响应数据之后,但在 .then() 或 .catch() 调用之前执行的函数。它允许您在处理响应数据之前对其进行任何必要的转换或处理。

具体到这段代码中,requestInstance.interceptors.response.use() 方法接受两个函数作为参数:一个用于处理成功的响应,另一个用于处理错误的响应。

第一个函数接收一个 response 参数,它表示从服务器返回的响应对象。在函数内部,使用解构赋值将 response.data 对象的 codemessage 和 data 属性分别赋给相应的变量。

然后,通过检查 code 是否等于 100 来确定响应的有效性。如果 code 为 100,意味着服务器返回了有效的数据,这时候我们将返回 data,即响应数据的主体部分。

如果 code 不等于 100,说明服务器返回的数据有错误,我们会使用 Promise.reject() 方法返回一个被拒绝的 Promise,并传入错误消息 message

第二个函数接收一个 error 参数,它表示请求过程中发生的错误。这个函数直接返回一个被拒绝的 Promise,并将错误对象传递给 Promise.reject() 方法。

通过设置这个响应拦截器,我们可以在每个请求的响应中进行一些通用的处理,例如根据不同的响应状态码进行不同的操作,或者统一处理响应的数据结构。

AddEmployee(Employee) {     return requestInstance.post('Employee/AddEmployee', Employee);   },

这段代码定义了一个名为 AddEmployee(Employee) 的函数,该函数用于向服务器发送一个 POST 请求来添加新员工。

函数内部使用了 requestInstance.post() 方法来发送请求。requestInstance 是之前创建的 axios 实例,通过该实例发送的请求会带有之前配置的 baseURL。

requestInstance.post() 方法接收两个参数:要发送的请求路径和要发送的数据。在这里,请求路径是 ‘Employee/AddEmployee’,相对于之前设置的 baseURL 进行拼接得到完整的 URL。

第二个参数 Employee 是要发送的数据,它作为一个对象传递给该方法。这个数据将会被序列化为请求的主体,并包含在请求中。

此函数返回 requestInstance.post() 方法的结果,即一个 Promise 对象。这个 Promise 对象将在请求成功时解析为服务器返回的数据,或在请求失败时被拒绝,并将错误信息传递给 .catch() 方法或后续的 .catch() 调用链。

在需要发送请求的组件中导入 http.js 并使用创建的 Axios 实例发送请求。例如,在组件的方法中使用 http 对象发送 HTTP 请求:  const getAllEmployee = async () => {   try {     Employee.value = await http.GetAllEmployee();     loading.value = false;     console.log(Employee.value);   } catch (error) {     ElMessage({       message: error,       type: 'error',       duration: 1000,       onClose: () => {         loading.value = false;       },     });   } };

这段代码定义了一个异步函数 getAllEmployee()。它使用了 async/await 语法来处理异步操作。

在该函数中,首先使用 try/catch 块来捕获可能发生的异常。在 try 块中,代码通过调用 http.GetAllEmployee() 方法来获取所有员工的数据,并将返回的结果赋值给 Employee.value 变量。

接下来,将 loading.value 设置为 false,表示加载完成,然后通过 console.log() 打印 Employee.value 的值。

如果在执行获取员工数据的过程中发生了错误,将会进入 catch 块。在 catch 块中,通过 ElMessage 组件显示错误消息,并将消息类型设为 ‘error’。设置了持续时间为 1000 毫秒,并在消息关闭后执行一个回调函数,将 loading.value 设置为 false,表示加载完成。

总体而言,这段代码的作用是异步获取所有员工的数据,并在获取成功时更新 Employee.value 变量的值,并在发生错误时显示错误消息,并更新 loading.value 的状态。

相关内容

热门资讯

实测分享!微信小程序免费黑科技... 实测分享!微信小程序免费黑科技,蜜瓜大厅辅助免费下载窍门教程(有挂猫腻)1、玩家可以在微信小程序免费...
截至发稿!微乐小程序黑科技,蛮... 截至发稿!微乐小程序黑科技,蛮籽酉阳大贰辅助手册教程(有挂方法)1、进入到微乐小程序黑科技是否有挂之...
一分钟教会你!微信小程序免费黑... 一分钟教会你!微信小程序免费黑科技开挂,欢乐茶馆脚本方案教程(有挂细节)1、微信小程序免费黑科技透视...
热门推荐!微信小程序免费黑科技... 热门推荐!微信小程序免费黑科技辅助,朋友局辅助器绝活教程(发现有挂)热门推荐!微信小程序免费黑科技辅...
2024教程!微信小程序免费黑... 2024教程!微信小程序免费黑科技透视,卡五星辅助器逍遥模块教程(确实有挂)1、玩家可以在微信小程序...
现有关情况通报如下!微信小程序... 现有关情况通报如下!微信小程序免费黑科技开挂,潮汕木虱有辅助挂吗积累教程(有挂详细)1)微信小程序免...
据相关数据显示!微乐小程序黑科... 据相关数据显示!微乐小程序黑科技,途游手游辅助脚本平台教材教程(有挂方略)1、超多福利:超高返利,海...
今日焦点!微信小程序免费黑科技... 今日焦点!微信小程序免费黑科技,途游手游辅助秘籍教程(有挂技巧)1、下载好微信小程序免费黑科技正确养...
最新研发!微乐小程序黑科技,吉... 最新研发!微乐小程序黑科技,吉祥填大坑攻略窍门教程(新版有挂)1、每一步都需要思考,不同水平的挑战微...
三分钟了解!微乐小程序免费黑科... 三分钟了解!微乐小程序免费黑科技,闲逸碰胡辅助积累教程(有挂方法)1、许多玩家不知道微乐小程序免费黑...