范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

vue中关于api统一管理那点事

  前情提要
  正常写小项目的时候,关于请求接口的存放可能没有那么在意,毕竟纵观整个项目可能也就那么十几二十个接口,当出现问题进行定位的时候也能很轻松的定位到。
  但是当接口的数量达到百级的时候,出现接口调整等的问题时就会出现捉襟见肘的情况,再多点可能改一个api接口就要找好久。而且有的接口可能好多地方用,如果这个接口发生更好,好家伙,光修改个接口地址或者参数什么的就得要一两个小时,太影响效率和开发心情。
  此时将api模块解耦出来就显得尤为重要。现在收集到了api统一管理的几种方案,各有千秋,具体优劣还有待各位看官的探讨。
  针对的是vue脚手架项目,不是在html中引入vue的项目。针对小项目而言(没有单独二次封装axios)无需管理,直接干。仅限于接口数量在20-30的
  上代码: 复制代码统一api.js文件管理
  将所有的api的接口信息都写在一个js文件里去维护。页面接口请求直接引入即可在根目录下创建api文件夹,然后创建index.jsexport default {   getInfo: "https://xxx.x.com/getinfo" } 复制代码具体页面使用 复制代码针对非小型项目而言(进行axios的二次封装)
  关于axios二次封装的问题可以直接点击链接查阅,有小白不懂得可以联系我。
  对于接口数量超过50的来说,还是用上述的方式去请求接口,此时无论是对于维护还是升级而言都不是很友好,此时我们需要更便利的方案。api统一管理 + 挂载到vue实例上 + 单模块
  思路:在api统一管理时,不仅仅管理请求地址,而是直接写一个request的请求方法,通过接受一些参数来实现多变性。api/index.jsimport request from "@/utils/axios" export default {   getInfo(params) {     return request({       url: "/xxx/xxx/xxx",       method: "post/get",       params, // 如果是get请求的话       data: params // 如果是post请求的话     })   } } 复制代码在main.js里import Vue from "vue" import App from "./App.vue" import api from "@/api/index"; Vue.prototype.$api = api; Vue.config.productionTip = false new Vue({   render: h => h(App), }).$mount("#app") 复制代码页面上得使用 复制代码api统一管理 + 挂载到vue实例上 + 多模块优点:可以在任意位置调用接口缺点:如果接口数量足够大,挂载到vue实例上得数据过多,可能会造成性能问题api/modules/account.jsimport account from "@/utils/axios" export default {   getInfo(params) {     return request({       url: "/xxx/xxx/xxx",       method: "post/get",       params, // 如果是get请求的话       data: params // 如果是post请求的话     })   } } 复制代码api/index.jsimport account from "./modules/account" export default {   account } 复制代码在main.js里import Vue from "vue" import App from "./App.vue" import api from "@/api/index"; Vue.prototype.$api = api; Vue.config.productionTip = false new Vue({   render: h => h(App), }).$mount("#app") 复制代码页面上的使用 复制代码api统一管理 + vuex + 单模块
  思路:api统一管理的方式不变,但是由挂载到vue实例上改成vuex 优点:在不挂载到vue实例的基础上可以在任何页面随意调用任何接口 缺点:为了保证在刷新页面不会报错的情况下就需要在api模块写一个接口配置,同时在store模块也需要写一次,比较繁琐。在api/index.js的写法不变。main.js中的相关挂载代码删除store/index.jsimport Vue from "vue"; import Vuex from "vuex"; import api from "@/api/index"; Vue.use(Vuex); export default new Vuex.Store({   action: {     getInfo(store, params) {       return api.getInfo(params)     }   } }) 复制代码在页面中 复制代码
  当然你也可以使用mapActions 复制代码api统一管理 + vuex + 多模块
  优点:可以在页面的任何位置进行调用 缺点:新增删除修改同一个接口,需要同时维护两个文件对于api文件而言,此时各个模式是相互独立的:api/account.jsimport request from "@/utils/axios" export default {   getInfo(params) {     return request({       url: "/xxx/xxx/xxx",       method: "post/get",       params, // 如果是get请求的话       data: params // 如果是post请求的话     })   } } 复制代码store/modules/account.jsimport api from "@/api/account"; export default {     namespaced: true,     actions: {         getInfo(store, params) {           return api.getInfo(params)         }     } } 复制代码store/index.jsimport Vue from "vue"; import Vuex from "vuex"; import account from "./modules/account"; Vue.use(Vuex); export default new Vuex.Store({   modules: {       account   } }) 复制代码在页面中 复制代码总结目前就这些方法,各有千秋。不知道各位还有没有更好的方法,在评论区打出来,将感激不尽...
  作者:知你故来风
  链接:https://juejin.cn/post/7084149728799096840

5G时代的虚拟手机云手机,到底是怎么回事?大家好,我是七七。欢迎大家来到我们的频道。前几期,我们为大家介绍了ARM安卓虚拟化相关的概念和背景,从这期开始,我们将为大家介绍应用场景。今天,首先为大家介绍云手机背后的ARM安卓谁说手机就要买新不买旧?推荐三款目前最值得买的旧旗舰虽然今年,各家厂商陆续推出了数十款新机。但明显可以看到,由于各方面涨价的原因,今年的旗舰机,普遍比去年要贵,部分机型甚至配置还有所缩水。如果想买旗舰机,但是预算又不够的话,旧旗舰无C语言经典100例20题目16题目输入两个正整数m和n,求其最大公约数和最小公倍数。程序分析利用辗辗转相除法。(这里的一行gcd本质上就是辗转相除法,可以想想是不是等价的)includecstdioin华为大白兔奶糖手机要64840?买个同款手机壳才15块有没有人是大白兔奶糖控?小时候,物质条件有限,一颗圆柱形拨开后有一层糯米纸的大白兔奶糖就代表了美好的童年长大后,与大白兔奶糖联名的食品都要尝一下,大白兔奶糖奶茶大白兔奶糖冰淇淋大白公认好用的骁龙870手机,最低1499,这4款性价比高最近很多人都在问,2022年了骁龙870手机还值得入手吗?答案肯定是不唯一的。骁龙870是在2021年初推出的旗舰芯片,当时也是仅次于骁龙888,安兔兔跑分甚至可以达到74万左右,电商出什么问题了?为何大批商家纷纷退出淘宝?今原因已被确认电商出什么问题了?为何大批商家纷纷退出淘宝?今天原因已被确认!疫情爆发后,很多人都说生意难做,不少店铺也纷纷倒闭关门,就连电商也受到影响。有人感到不可思议中国很快就控制了疫情,随后谷歌回应公开俄军事战略设施细节传言未改变俄卫星图像模糊程度文观察者网鞠峰4月18日,乌克兰媒体爆料称谷歌地图公开所有俄罗斯军事设施高分辨率图像。但谷歌方面回应称,并未对俄罗斯卫星图像的审查方式做出任何改变。这否认了乌媒的报道。最初是4月1马化腾没跟你开玩笑!微信朋友圈七不晒,晒了的赶紧删掉作为中国人首选的社交软件,微信算得上是一个完全没有隐私的平台。大家喜欢在朋友圈各种晒,各种炫富,各种发泄,导致个人隐私严重泄露。也许有人会说,微信里加的都是我的好友,泄露就泄露又没上海地铁里程是不是世界第一?1989年第一次去日本东京出差,惊叹东京交通的发达,30年过后上海地铁也是四通八达,但和东京大不一样的是东京轻轨发达,而上海是地铁发达,觉得东京交通更为方便,地铁有机结合轻轨组成交中国能源汽车加速下沉三四线城市成推广新战场中新网北京4月18日电当前中国能源汽车正在加速下沉,三四线城市成为其推广的新战场。云南省安宁市温泉山谷电动汽车配套充电桩建设项目日前开启招标,标的为400个充电桩。类似安宁这样的三蔚来ES8上演穿墙术,半个车身穿透地库墙壁,现场堪比伊拉克战场蔚来汽车作为国产新能源的领军品牌之一,ES8的出货量一直居高不下,也备受众多车主的好评,不过,最近一则ES8的新闻让不少车主后怕不已。没错,图片上的这辆汽车就是蔚来ES8,车的前半
是什么面膜让前男友惊呼后悔?欸,仙女们,小编我前一阵结束了慢慢长跑之路,与枕边人说再见了。其实,在最初刚刚结束的时候,还没有很难受的感觉欸,会觉得不就是分个手嘛天下之大,还能没有更加适合的人吗?随着时间的推移携手互联网时代的华为鸿蒙系统,北京汽车抢占市场先机早期的互联网汽车更多的通过植入芯片,来通过语音控制的方式操控一些车辆基本单位功能,比如说你可以通过唤醒智能助手之后对天窗空调导航等基本功能进行初级的操控。这是互联网汽车的雏形,即便宝能城发稳步迈向产城发展快车道宝能滨江府引爆燕子矶宝能城发作为宝能集团综合开发业务的核心平台,承袭集团基因,不断构筑城市综合开发运营价值生态圈,赋能城市发展。伴随综合实力不断增强,宝能城发稳步迈向产城发展快车道,佳绩频出。近期,位北京EU5PLUS亮相首届购车节,出色表现成为新能源标杆随着时代发展,汽车行业也在改革换代,现在消费者越来越注重性价比,而车企也在努力创造更符合消费者需求的汽车,其中在2021北京汽车首届购车节上,北京EU5PLUS震撼亮相,新车外观采护肤你真的做完整了吗?提到护肤步骤的话,大家想到的是不是化妆水乳液眼霜精华还有面霜呢?在我们平时的视野中这些产品和步骤被我们称之为护肤步骤,其实我觉得是对了一半的,因为这确实可以作为夜间护肤流程来做的,买灯饰送五菱宏光miniEV?月影家居联手张继科送豪礼如果你觉得今年618的活动力度好像不够,那是因为你还没有发现真正的宝藏店铺!虽然618打着购物狂欢节的名号,但是大家都知道各个品牌商店的套路,不是预付定金限时开抢,就是限xxx名付互联网直播平台网红带货,真的能提升业绩?新社交电商平台的崛起,引起众多商家的注意。目前比较火的平台大致有,抖音快手雅虎YY斗鱼等等,起初这些平台是以好玩新鲜形式上线,经平台发展商业化越来越严重。不可否认这些平台给予许多人如何通过社群裂变寻找精准客户的4大要点如今在这个时代做网络营销离不开社群营销,社群裂变容易,策划好裂变海报,几乎就不缺人,但是有个问题点就是客户的精准度,客户不精准,裂变没有任何意义。比方说你在鱼塘中打捞大的鱼去市场卖社群运营干货,微信社群构建的13个建议是时候给大家展示社群的干货了,在运营社群中(以微信社群为主),偶尔都会遇到一些瓶颈,比如说,微信运营一个月时间还是挺不错的,但是后期发现这个社群就跟机器社群一样。当初策划运营的时都哪些人更有潜力做社群?做社群有3个特点有个网友留言给我一个问题,问题是什么样的人比较容易做社群,或者说做社群有什么特点?其实小蚱蜢之前还没有总结过这个问题,今天就给大家总结一下这两个问题,社群划分的特点可以说是有三个。构建高黏性和高参与度的社群7件事一个合格的社群离不开社群的黏性及参与度,如果这两件事没有做好,那么社群面临死群就不远了,为什么这样说呢?社群是人与人之间的聚结团体,在社群中不能全部都是吃瓜群众,要让每个群员都有参