我在封装详情页功能的时候,其实最早的雄心壮志是做低代码平台。看了几篇文章,再看看自己的小键盘以及手里的项目排期,就放弃了。我和我的梦想终究是隔着时间、人力、能力等多重重险阻。
但是,我转念一想,如果把前端的功能简化,不就有时间做低代码平台的开发了吗?对于自己的机智,反手就是一个赞。
于是开始计划,最大化的模块化和组件化前端功能,这样一来,每次新需求开发就会非常的便捷。而后台系统,最复杂也最啰嗦的就是表单功能,所以我准备将表单做成组件化的。
表单功能不用再重复的码一些个输入框、下拉项、日期控件等代码,是不是节省了很多时间,节省出来的时间又可以去研究低代码开发,是不是离财富自由更近了一步。(✧◡✧)
基于React框架开发,使用的antd UI组件库。
antd提供的Form表单控件,已经集成了数据录入、校验以及对应样式等。但是我们实际开发的时候,后台系统的添加、编辑、其他数据录入等表单弹窗,内容项大多是Input、Radio、CheckBox等,每次开发都重复码一些代码。所以我根据日常开发经验,将常规的表单项做了进一步的封装处理。
封装处理之后,只需将表单项类型、key值等关键变量放到一个数组对象中,通过props传递到表单组件中即可。
当表单填写完成之后,填写的数据会通过callback函数回传到表单弹窗中。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| data | 表单默认数据 | object | {} |
| list | 表单项展示数组 | any[] | [] |
| layout | 表单布局 | object | - |
| callback | 提交操作的回调函数 | (value,list) => void | |
| getFormRef | 获取formRef方法 | (formRef) => void |