怎么用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模式
网络工程网络安全与技术
我的世界服务器公会战争网易版
网络安全专业研究生
数据库登录设置不正确
舜宇科技的软件开发
爱琳诗篇所有服务器开服
附加数据库忽略错误的
贺州裁剪网络技术有限公司
面试不会数据库怎么办呢