以下内容基于抖音【哲玄前端】博主的699课程做出阶段性总结
前端切图仔心里的crud痛点
大量重复地根据element-ui框架设计后台管理,耗时且耗心。
虽然目前社会上有许多低代码平台 可以拖拉拽开发 如 Avue 。
本人用了3年Avue框架进行开发,深知其中的痛点及不足。
虽然它可以快速地搭建一个 管理页面,但是想个性化开发某些小组件,简直难上登天!!!
许多属性写死到页面上,只能通过自己重新搭建新的页面去实现。
设计思想
通过JSON schema 规范进行配置文件,通过相关引擎解析器去解析相关模块文件,直接输出到页面中,实现了以 “数据” 驱动 生成页面,且保留个性化定制的接口。
落地方案
以下是前端页面的实现:
首先规范好页面的大概布局,如 el-header el-aside el-container ,经典的侧边栏布局。
**menu --> header**
写 el-header 时for循环 menuList, 且还需解析是否需要下拉。 因此 mode 有两个类型:'module'是正常显示的菜单, 'group' 是可以hover触发下拉的菜单
**menu--> aside**
写 el-aside 时,也是循环 menuList,但是和header的区别是 ,点击后需要判断跳转的情况,如果header 上的menu 已经active了 ,就无需跳转。
**el-container**
通过配置 tableOption 和 searchOption 达到管理后台页面的生成,并且是通用的组件库。
例如不同的页面有不同的搜索字段,通过组件化地getValue(),直接返回当前页面的所有字段,并且在传递给接口,重置功能也相同,是我写3年curd代码无法企及的设计思想!!!
以下是各引擎的实现:
控制层:根据路由返回相对应的 dataList
依赖层:主要是输出日志
中间件层:如 api的参数校验,签名校验,报错处理等
路由层:对相关的路由进行配置
服务层:代理相关接口
个人心得
原来接口也可以封装成get(获取) post(修改) delete(删除) put(新增)