千家信息网

怎么用vue实现axios的二次封装

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍了怎么用vue实现axios的二次封装的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用vue实现axios的二次封装文章都会有所收获,下面我们一起来看
千家信息网最后更新 2025年02月01日怎么用vue实现axios的二次封装

这篇文章主要介绍了怎么用vue实现axios的二次封装的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用vue实现axios的二次封装文章都会有所收获,下面我们一起来看看吧。

定义公共参数与引入组件:

import axios from 'axios'import qs from 'qs' axios.interceptors.request.use(config => {  //显示loading return config}, error => { return Promise.reject(error)})  axios.interceptors.response.use(response => { return response}, error => { return Promise.resolve(error.response)}) function errorState(response) {  //隐藏loading console.log(response) // 如果http状态码正常,则直接返回数据 if (response && (response.status === 200 || response.status === 304 || response.status === 400)) {  return response   // 如果不需要除了data之外的数据,可以直接 return response.data }else{  Vue.prototype.$msg.alert.show({      title: '提示',      content: '网络异常'  }) } } function successState(res) {  //隐藏loading //统一判断后端返回的错误码 if(res.data.errCode == '000002'){    Vue.prototype.$msg.alert.show({      title: '提示',      content: res.data.errDesc||'网络异常',      onShow () {      },      onHide () {       console.log('确定')      }    }) }else if(res.data.errCode != '000002'&&res.data.errCode != '000000') {   Vue.prototype.$msg.alert.show({      title: '提示',      content: res.data.errDesc||'网络异常',      onShow () {       },      onHide () {       console.log('确定')      }    }) }}const httpServer = (opts, data) => {   let Public = { //公共参数   'srAppid': ""  }   let httpDefaultOpts = { //http默认配置     method:opts.method,     baseURL,     url: opts.url,     timeout: 10000,     params:Object.assign(Public, data),     data:qs.stringify(Object.assign(Public, data)),     headers: opts.method=='get'?{      'X-Requested-With': 'XMLHttpRequest',      "Accept": "application/json",      "Content-Type": "application/json; charset=UTF-8"     }:{      'X-Requested-With': 'XMLHttpRequest',      'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'     }  }   if(opts.method=='get'){   delete httpDefaultOpts.data  }else{   delete httpDefaultOpts.params  }    let promise = new Promise(function(resolve, reject) {   axios(httpDefaultOpts).then(    (res) => {     successState(res)     resolve(res)    }   ).catch(    (response) => {     errorState(response)     reject(response)    }   )   }) return promise} export default httpServer

封装理由:

1、可以和后端商量好错误码在这统一提示统一处理,省去不必要的麻烦

2、如果做接口全报文加解密都可以在此处理

接口统一归类:

const serviceModule = { getLocation: {  url: ' service/location/transfor',  method: 'get' }}const ApiSetting = {...serviceModule } export default ApiSetting

归类好处:

1、后期接口升级或者接口名更改便于维护

http调用:

关于"怎么用vue实现axios的二次封装"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"怎么用vue实现axios的二次封装"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

封装 接口 提示 统一 知识 网络 内容 参数 数据 篇文章 错误 处理 归类 价值 好处 报文 操作简单 文章 易懂 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 A3307计算机网络技术 网络安全卡片怎么做 软件开发在公司一般是做什么 互联网教育科技公司名字大全 北京人口分布 gis数据库 王者荣耀专区服务器会变吗 防范网络安全的终极办法 深圳往悦互联网科技有限公司 小程序云数据库超时 feret数据库百度百科 龙芯服务器直销厂家 机器人专业工作做软件开发好吗 小学生网络安全守则十条简短 怎么重新设置服务器 软考数据库和信息安全哪个难 计算机网络技术学什么最好 数据库验收内容 国家层面网络安全 云锁win服务器管理是什么 暗黑2重制版暴雪服务器一直炸 软件开发a b模式 网络工程网络安全与技术 我的世界服务器公会战争网易版 网络安全专业研究生 数据库登录设置不正确 舜宇科技的软件开发 爱琳诗篇所有服务器开服 附加数据库忽略错误的 贺州裁剪网络技术有限公司 面试不会数据库怎么办呢
0