当前位置:首页 > 技术分析 > 正文内容

俺咋能看懂公司前端项目?(公司的前端)

ruisui8819小时前技术分析1

●●●

大家好,

我是一名刚步入社会的有志青年开发者。

在校学了三年的后端开发,没想到刚步入公司干起了前端工作,华丽的转变让我有点猝不及防,谁让我辣么优秀!

趁着头发茂密,让我们步入正题!

很有幸进入公司就参与了项目的开发,项目的前端是采用的Vue和Element框架,我刚拿到公司封装之后的Vue的脚手架翻了翻,瞬间感觉对不起老大,我不配当你小弟,请原谅我猜不透你的心思。何以解忧,唯有度娘。

熟悉了那么一个星期,让我最钦佩的是调用后端接口这块封装的代码,使用的时候仿佛像在写java调用类的静态方法一样,就像这样AppController.create,有人肯定会问你的参数是不是让狗吃了,兄台白慌,听哥说完,你不看完我咋提高阅读量,下面请不要随地吐痰。

作为前端开发,避免不了与后台接口打交道,经常要去接口文档或者访问swagger网址查看接口详情,就导致代码和查看接口之间来回切换。年轻手速快记性好的请随意。

接口联调的时候如何一眼就能知道该调哪个接口和传哪些参数很重要,有助于开发的效率。如果有一种将接口信息植入到前端项目里,调用的时候它还能提示你调哪个方法,参数还能一目了然的方式,那就美滋滋了。然而在这里,你赚大了。

框架的灵魂在于它的设计思想,在这里仅传授设计思想,不然就像我最近写论文一样半天憋不出俩字写个猴年马月。

前面写的有点啰嗦了,

下面那就开始掉头发吧。


首先了解一下前端管理后台接口的架构流程,技术选型后端要使用swagger接口管理,前端vue使用vuex状态管理,解析swagger需要用到Handlebars模板编译和fs文件解析。

1、使用Swagger。

首先要想设计好这块,必须要求后台服务引入swagger插件,它就是一款让你更好的书写API文档的框架。如果你公司没有用它就lower了,我不是求针对,我就是针对你。

2、解析Swagger和生成actions。

后台服务启动后访问
http://ip:port/v2/api-docs得到一个JSON字符串,首先将字符串解析成JSON对象,然后获取对象中tags数组和paths对象,tags里面包含每个类的名称和描述,paths里面包含接口的访问url、请求方式、接口描述、所属tags和参数描述。通过遍历tags从paths对象里面获取每个接口的详细信息,最后通过Handlebars编译成指定格式的js文件。每个类对应一个文件,文件内容是一个对象,里面包含一个actions对象,这个actions对象含有一个类里面的所有接口详细信息。说到这里,估计有的小伙伴已经眼神已经迷离了。总结一下,网上一大堆,不抄你赖谁,写好喝咖啡,王者带你飞。

3、vuex装饰actions。

我们都知道vuex里面action是支持异步操作的。这里我们对上述每个生成的acitons文件进行装饰,装饰的内容包括每个接口请求前、发送请求和请求之后对state数据的改变。装饰之后生成新的actions。最后交给store进行管理。这里的发送请求其实就是调用封装好之后的axios的方法。


4、组件使用vuex辅助函数。

vuex里面有四个辅助函数mapState()、mapGetters、mapMutations和mapActions,这里仅使用mapState和mapActions即可满足需求,其中mapState用来获取请求接口的loading情况,通过判断loading和v-loading结合可以提高用户体验。mapActions将保存在store的actions映射到组件当中,在组件中直接可以通过this来调用actions完成网络请求。

5、抽离封装组件。

我们不能在每次调用接口都使用辅助函数来一遍吧,所以需要抽离一个公共组件,在这个公共组件里可以封装一个统一的方法调用mapActions生成的函数,通过传递action函数名和参数来完成接口的调用,组件里面还可以封装一些对请求错误处理的公共方法。如果想要更简单的,可以封装一个全局的方法dispatch进行调用。

6、混入(mixins)使用。

Vue里面有一个很好的混入功能,混入组件拥有自己的生命周期,可以将一些公共的数据放在组件里。这里我们可以通过混入将之前抽离封装的组件。在需要接口调用时,直接可以this.xxx进行调用。

最后达到的效果:

在vue组件中使用this.dispatch(AppController.create,{...args}),返回值为接口调用的返回值。

关于vue接口管理的设计就到这里,下一篇我将讲述如何使用react或rn高效管理调用后端接口。

对于vuex和redux不熟的童鞋

赶紧去学

别在这听我胡扯。


关于作者:卜壮,普元前端开发工程师,负责Mobile 8.0项目管理平台前端部分。熟悉ReactNative,目前正在学习Vue,大前端技术探求者。

关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3790.html

分享给朋友:

“俺咋能看懂公司前端项目?(公司的前端)” 的相关文章

Vue3 如何实现父子组件传值?

在Vue 3中,要实现父子组件传值效果主要通过props和emit两种机制来实现,下面我们就来详细介绍一下这两种机制。父组件向子组件传值propsprops是Vue组件的一种机制,主要的作用就是实现从父组件向子组件传递数据值,在父组件上通过在子组件标签上定义属性来实现数据属性值的传递,在子组件中通过...

Python 幕后:Python导入import的工作原理

更多互联网精彩资讯、工作效率提升关注【飞鱼在浪屿】(日更新)Python 最容易被误解的方面其中之一是import。Python 导入系统不仅看起来很复杂。因此,即使文档非常好,它也不能让您全面了解正在发生的事情。唯一方法是研究 Python 执行 import 语句时幕后发生的事情。注意:在这篇文...

neovim 0.9在win下配置 python开发环境

初级的一些配置点击下面链接查看neovim安装插件管理器neovim常用快捷键neovim python开发环境简易配置方法 (需要手动键入命令行 运行python)安装neovim python的模块pip install pynvim pip install jedi pip install n...

15款测试html5响应式的在线工具

手机、平板灯手持设备的增多,网站要顺应变化,就必须要做响应式开发,响应式网站最大的特点在于可以在不同设备下呈现不同的布局,是基于html5+css3技术,目前越来越多的网站开始采用了响应式设计,而下面15款工具可以方便测试你的html5响应式效果。Responsinatorhttp://www.re...

《暗黑破坏神 2:重制版》PC 版 2.3 版本发布,支持英伟达 DLSS

IT之家 12 月 3 日消息,暴雪为《暗黑破坏神 2:重制版》PC 版发布了更新 2.3 版本,添加了“离线难度缩放”滑块(玩家可以在单人游戏时增加挑战和奖励的级别)、多项辅助功能和用户界面改进,以及英伟达 DLSS 支持。玩法改进:玩家现在可以在离线游戏的选项菜单中使用“游戏难度等级”,它提供与...

三勾点餐系统java+springboot+vue3,开源系统小程序点餐系统

项目简述前台实现:用户浏览菜单、菜品分类筛选、查看菜品详情、菜品多属性、菜品加料、添加购物车、购物车结算、个人订单查询、门店自提、外卖配送、菜品打包等。后台实现:菜品管理、订单管理、会员管理、系统管理、权限管理等。 项目介绍三勾点餐系统基于java+springboot+element-plus+u...