APP下载

基于Vue的前端开发框架的设计与实现分析

2023-08-28李如桃

电脑迷 2023年5期

李如桃

【摘 要】 近年来,伴随Web前端技术发展速度的不断加快,用户对产品的性能及应用提出了多元化的要求,加大了前端开发难度。为了科学地解决前端在开发环节存在的维护难、可扩展性低、代码重用性低等问题,合理提升开发效率,有效进行框架开发成为必然趋势。基于此,文章以Vue为基础的前端开发框架从设计与实现角度展开研究,首先阐述了开发框架的功能架构设计,其次论述了架构功能的具体实现,以供参考。

【关键词】 Vue;前端开发;开发框架;框架设计

伴随前端应用复杂度的持续提升,传统的应用开发方式,无法适应现代化产品在发展层面的多元变化,为了有效应对当前前端在开发环节面临的诸多问题,前端工程师在开发期间,一般会选择开发框架的方式通过模型组建合理提升开发的整体工作效率。当前,效果较好的前端框架数量处于充足状态,但是此种类型的框架对于通用性模块在集成上以及实际逻辑在交互层面的设计等相关工作匮乏度较高,如果以现在状态对项目完成相对应的研发工作,必然会在成本上形成一定的消耗。基于此,针对以Vue为基础的前端开发框架在设计和实现角度展开深层次的探讨,就当前现状来讲,拥有极为重要的现实价值。

一、以Vue为基础的前端在开发角度的框架功能架构设计分析

(一)基础功能模块框架设计分析

1. 认证登录设计

在前端应用环节,认证登录属于不可或缺的一项基础性功能。在具体开发环节,几乎所有Web应用都要完成认证登录,针对常见的工作业务在需求层面展开讨论,在框架内部体系中组织建立以Token为基础的登录认证工作流程,并在调用接口上提供一套完整的API体系,使一键登录、短信验证码、动态性验证码等功能得以实现,开发人员对该框架进行开发时,只需要对有关API接口完成调用,即可正常使用该功能,不需要重复实行开发操作。

2. 权限控制设计

开发框架体系在内部,针对权限从控制角度研发出了一套完备性相对较高的体系,可以针对时间权限、按钮权限、菜单权限等相关权限实现合理调控,从实践上提供了不同的解决方案。其中,就管控角度来讲,以动态性的路由为基础执行相关操作,页面在执行初始化指令时,到服务端对用户路由表完成加载操作,动态地在路由上对其完成挂载操作,不同用户在路由表中拥有不同的对应信息。按键权限和菜单权限就实现管理角度而言相似程度整体比较高,都是在执行初始化命令时,针对用户按钮相关信息完成加载操作,在全局体系框架内,针对按钮权限组建相对应的执行函数,实现按钮与用户在权限层面的相关联系的科学匹配,针对按钮的隐藏功能以及显示功能实现动态性的控制。

3. 角色管理设计

利用Element-UI中的Card卡片对用户以及角色进行科学管理和控制,将用户及角色有关联的数据信息以卡片的方式呈现,卡片中用到的组件类型为树形,用于用户决策及资源信息实现合理储存,能够更加便捷地执行用户角色和资源之间的修改和调整等操作。

(二)组件内部功能模块在框架角度的设计分析

框架体系内部在功能上封装与集成了丰富度较高的相关组件,为用户在调用层面的工作提供更加便捷性的服务。针对常见的表格组件、编辑器、树形表格、图像组件等完成科学集成,针对少数组件执行封装操作,以适当呈现方式,合理满足不同场景下提出的多元化需求。文章主要论述Charts可视化组件、Chat聊天组件、Svg-icon图标组件的设计与实现。

在前端开发环节中,图标引用数量极其庞大,如果选择传统方式进行图标应用,通常只能以选择手工的方式,对图标实现逐个引用,这种方式不仅会耗费大量人力,也会降低工作效率。Svg-icon组件以图标名称为基础,对相关资源执行加载操作,可以对图标完成自动化的渲染,并以手动的方式对图标的大小和颜色进行更改,也能更加便捷地对在线图标實现科学引用。Chat聊天组件能够为用户在聊天层面组织建立简单化水准较高的聊天室,在聊天室内完成消息的发送及存储等相关操作。Charts可视化组件的主要作用是以Echarts作为基础,针对各个图表模板在框架内部实现封装,不仅可以从动态性角度对数据实现绑定,还能从实时化角度对数据完成更新,并且将事件监听功能在可视化图表当中添加完成,支持在点击图标的同时,完成路由跳转操作。

二、以Vue为基础的前端在开发角度的框架功能实现分析

(一)登录功能的实现分析

1. 登录验证

用户在登录的页面上完成用户名和用户密码输入操作之后,将身份验证请求信息发送到服务器端。

服务器端在完成信息接收操作之后,将用户名与密码等与数据库中的信息实现校验比对。

服务器端将校验结果发送到客户端,信息匹配完成后,向客户端返回一个签名Token,如若匹配失败,则会直接显示匹配失败。

客户端在接到服务器端发送的相应用户签名信息之后,将在本地文件中执行存储操作,以后每次向服务器端请求相应信息时,相对应的签名信息都会包含其中。

服务器端对过滤器Filter执行应用操作,可以对签名信息的真实性完成校验,如果校验成功会直接在请求角度发送相应信息,失败则直接显示失败。

2. 用户信息的加载

用户在执行登录和验证等相关操作时,客户端会向服务端口发送的相关签名的数据信息,在本地文件中执行储存操作,但是不会对用户关联信息一同执行存储操作。原因是防止相同用户账号在不同设备页面登录时,由于另一台设备对信息同时执行修改操作而导致另一台设备中无法显示用户的最新信息,避免了两台设备信息不相符的问题。

在此环节采取的设计方案是页面在执行刷新操作期间,会优先从本地文件中扫描有无签名信息的存在,如果没有扫描到,则需要再次执行认证流程,如果扫描到签名信息,则会在API发送请求时直接裹挟认证信息到服务端,之后获取用户的具体信息,确保信息的实时性。

(二)实现权限控制

1. 实现菜单级别权限

前端在向后台发送路由数据的请求信息时,需要对时机拿捏得当,一般用户在完成登录操作后,服务器端口菜单信息会实现自动加载,加载完成后会在Store中完成储存。

2. 实现按钮级别权限

用户在正确执行登录操作并进入到主页面之前,服务器端口会对菜单资源实现同时加载,确保用户进入到页面后,按钮相关信息能够正确加载,后台再将Json相关数据信息发送到前端,之后在Store中完成数据信息的存储。

按钮资源加载完成并顺利储存在Store之后,针对其中某个页面执行访问操作时,页面中的所有按钮都可以选择使用hasBtnPermission的方法,对按钮显示进行控制。首先在store中对当前用户储存的按钮权限信息进行处理,将用户具备的所有权限标识统一存放在数组中,之后再与用户将要访问的页面当中的按钮信息与权限层面的标识与标记做好甄别,甄别结果显示成功,则出现Ture字样,失败则出现False字样。

在按钮当中对V-if属性完成应用,按照匹配结果实现隐藏和显示。

3. 角色管理的具体实现

用户在角色关系层面的管理主要涵盖系统管理人员针对用户在角色、状态等层面的管控,其中用户决策信息的管理工作主要涵盖角色的删除、添加等,用户状态信息管理包含用户启用、用户禁用等。

(三)组件设计的实现

1. Svg-icon组件

首先针对Svg资源执行导入,通常情况下,所导入的Svg图片中会包含大量的冗余数据信息,增加了图标资源在框架中的整体占有率,借助该组件能够对冗余信息完成过滤,对图标进行精简。之后对Svg图标资源完成导入操作,传统方式是每次应用资源时完成一次导入,耗时耗力,利用图标自动导入方式则方便许多。

图标导入完成后,对Svg-icon完成全局注册,在页面内实现引用,对本地图标与外部图标两种资源的引用进行甄别,结果显示内部资源则可直接通过,结果显示外部资源则会借助CSS中的Mask属性对图片进行遮盖,对图标格式实现统一之后,按照图标名称完成加载。

isExternel函数主要是对引用资源进行甄别,看其是否为网络资源,如果是则需要做单独处理。之后引入Svg-spite-loader对文件内容进行读取之后,将其注入CSS当中,引入完成后,项目运行若产生异常信息,原因是文件读取工具与默认处理工具二者之间产生问题。

在框架体系中对Webpack执行配置,让文件处理相关文具在指定文件夹下针对Svg图标进行相应处理,之后再由Url-loader对其余Svg图标进行处理,合理规避二者之间产生的冲突。

2. Chartx可视化组件的实现

首先安装Echrts,在项目根目录中运行安装命令,安装操作结束后,在项目中对其执行引入操作。一般状况下,为了提高开发的便捷性,在项目当中会针对Echarts组件在前期角度进行引用。之后对组件的封装和实现进行介绍,并创建两个文件,一个由父组件对图表进行调用,一个则由子组件对图表进行渲染。

在子组件中按照要求引入插件,在选项中对可视化图表完成配置,其中包括数据选项、公共组件、显示样式、标题设置等相关配置。

组件中加入了图表事件的监听,由监听组件完成路由跳转、信息提示等逻辑性的操作。

3. Chat聊天组件的实现

用户Card.vue组件的主要功能是对当前用户执行展示操作之后,以模糊性匹配的方法,在用户的好友列表中对好友执行查找操作。以用户名结合头像的方式,针对用户在信息层面实现标记,之后在用户完成登录操作后,在本地文件储存夹SessionStorage中对用户信息进行获取,用户功能查找主要是以V-model属性为基础,将与用户有关联的搜索关键词,在好友列表中储存的全部好友姓名中完成模糊性匹配。

用户列表组件功能是将当前用户的所有好友以列表进行显示,当点击某个好友的头像并对其发起聊天时,会首先触发方法ChangeCurrentSession方法,将当前聊天好友数据信息更改成CurrentSession,之后使用ElementUI体系内的Badge组件,针对当前正在聊天的好友,从好友状态上做好标记。

Message.Vue组件在聊天室当中的功能是展示好友聊天信息,当用户点击好友聊天框并执行聊天操作时,以v-for循环为基础,在聊天框内部自动对用户和好友以往聊天记录完成展示操作,应用Filters对用户头像信息实现筛选,对于信息进行过滤,将其变为Hours:Minutes,再借助Vue对Directives指令实现自定义,信息发送完成后,自动滚动到聊天窗口的底部。

三、结语

综上所述,文章着重论述了框架的设计与实现,对前端开发环节面临的开发难度大、效率低等相关问题,从解决方法上提出了不同的多元方案,但是就框架整体来讲,是以JavaScript框架体系当中的Vue.js为基础執行开发操作,针对框架底层的代码在重构以及性能优化等诸多层面所涉及的内容相对不多。在未来,需要在深层次关注具体需求的情况下,加强对框架在性能角度的设计和创新,与此同时陆续跟进用户在使用层面的体验感受,对框架在应用角度的实际功能做出优化和创新。

参考文献:

[1] 李凤盼,赵志敏,王莹莹. 基于Vue的建筑项目智能管理可视化系统设计与实现[J]. 软件,2023,44(02):77-80.

[2] 刘秋兰,张静. 浅谈Web前端开发模式发展[J]. 电子测试,2022,36(21):135-137.

[3] 王萍芳. 基于VUE的智能采摘机器人前端开发框架研究[J]. 农机化研究,2023,45(05):229-232.

[4] 周园园. 基于Vue. js和JavaScript技术设计与实现的多功能Web计算器[J]. 科技资讯,2022,20(12):10-13.

[5] 黄可. 基于Vue的信息融合界面开发方案的设计与实现[J]. 信息技术与标准化,2022(03):79-82.