[配置]集中管理Vue项目中的http请求

需求:

项目中难免有多个http请求,如果分散在各个页面中,对于查看和修正都极其不便,所以想对他们进行集中管理;

分析:

思路1:做一个普通的service,用文件http.api.js集中存放http请求,然后在需要做http请求的页面引入这个文件;
思路1问题:需求可以实现,问题在于每个页面都要引用一次,相对麻烦;
思路2:用文件http.api.js集中存放http请求,然后将这个服务注册到vue的原型对象中去,名称可以是$api($字符用于标识此方法为vue原型对象方法);
思路2优点:不需要重复引入,直接this.$api.某个请求名,就可以使用;

实现:

(这里只讲思路2的实现)

1,创建http.api.js文件,在文件中依照普通service方法写好请求信息,这里只做了一个实例,API对象里面其实可以分类(对应项目各个模块)添加多个请求:

const API = {  
  // 首页资讯请求  
  homeInfo: 'http://127.0.0.1/main.php'}
export default API ;

2,在main.js中注册这个服务到vue的原型对象中去:

// 引入axios---这部分不清楚的参考我的如下博文
// [配置]vue axios配置,地址如下: 
// https://blog.csdn.net/tom_wong666/article/details/83833582
import axios from 'axios'
// 引入网络请求api
import API from '@/page/http/http.api'
Object.defineProperties(Vue.prototype, {
  // 注册axios请求为vue的原型对象,名称为$http  
  $http: {    
    value: axios,
    writable: false
  },  
  // 注册http请求api为vue的原型对象,名称为$api  
  $api: {    
    value: API, 
    writable: false
  }
})

3,在需要的页面中使用:

async fetch(){
  / /数据请求计数
  this.num+=1;   
  //请求数据      
  const res = await this.$http.post(this.$api.homeInfo+'?cid='+this.num)
  // 下面关于请求回来的res数据处理,非本文阐述的内容,所以省略
}

4,验证:
此设置已验证OK,需要看源码的同学,可以克隆如下项目查看:
demo的github地址:https://github.com/tom-wong666/xiaoa.git

博文通览提示:

点击此超链接跳转到Tom哥的博文分类和索引页面
Tom哥的博客博文分类和索引页面地址:https://blog.csdn.net/tom_wong666/article/details/84137820

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tom_wong666

码字不易,分享有功,期待赞赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值