经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » iOS » 查看文章
Vue封装axios的示例讲解
来源:jb51  时间:2023/1/11 8:38:31  对本文有异议

1、axios:是一个基于Promise的网络请求库。既可以在node.js(服务器端)使用,也可以在浏览器端使用

(1)在node.js中使用的原生的http模块

(2)在浏览器中使用的XMLHttpRequest

2、vue中的使用方法

(1)安装:npm install axios

(2)引用方法:

原生的方式(不推荐使用)

  1. axios({
  2. url:'http://127.0.0.1:9001/students/test', //远程服务器的url
  3. method:'get', //请求方式
  4. }).then(res=>{
  5. this.students = res.data
  6. }).catch(e=>{
  7. console.error(e);
  8. })
  9. //缺点:每个使用axios的组件都需要导入

注:axios对服务端数据的封装

  • res.config:响应信息的配置情况
  • res.data:响应的数据
  • res.headers:响应头信息(信息的大小、信息的类型)
  • res.request:请求对象
  • res.status:请求、响应的状态码
  • res.statusText:请求、响应状态码对应的文本信息

在项目的main.js文件中导入axios,将其写入Vue的原型中(推荐使用)

  1. import axios from "axios";
  2. Vue.prototype.$http = axios

在组件中通过this.$http的方式使用

  1. this.$http.get('http://127.0.0.1:9001/students/test').then(res=>{
  2. this.students = res.data
  3. }).catch(e=>{
  4. console.log(e)
  5. })

缺点:只能在vue2使用,vue3中不能用

将axios单独封装到某个配置文件中(在配置文件中单独封装axios实例)

(1)配置文件:axiosApi.js

  1. import axios from "axios";
  2. const axiosApi = axios.create({
  3. baseURL:'http://127.0.0.1:9001', //基础地址
  4. timeout:2000 //连接超时的时间(单位:毫秒)
  5. })
  6. export default axiosApi //axiosApi是axios的实例

(2)使用:

  1. import $http from '../config/axiosapi'
  2. $http.get('/students/test').then(res=>{
  3. this.students = res.data.info
  4. }).catch(e=>{
  5. console.log(e)
  6. })

优点:既可以在vue2中使用,也可以在vue3中使用

3、axios的不同请求方式向服务器提交数据的格式:

(1)get请求:服务器端通过req.quert参数名来接收

直接将请求参数绑定在url地址上

  1. let str = '张三'
  2. $http.get('/students/test/?username='+str).then(res=>{
  3. this.students = res.data.info
  4. }).catch(e=>{
  5. console.log(e)
  6. })

通过params方式进行提交

  1. let str = '张三'
  2. $http.get('/students/test',{
  3. params:{
  4. username:str
  5. }
  6. }).then(res=>{
  7. this.students = res.data.info
  8. }).catch(e=>{
  9. console.log(e)
  10. })

(2)post方式请求:服务器端通过req.body.参数名获取数据

  1. let str = '张三'
  2. $http.post('/students/test',{
  3. username:str
  4. }).then(res=>{
  5. this.students = res.data.info
  6. }).catch(e=>{
  7. console.log(e)
  8. })

(3)put方式请求:和post方式一样

(4)delete方式请求:和get方式一样

到此这篇关于Vue封装axios的示例讲解的文章就介绍到这了,更多相关Vue axios内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号