在做低代码平台,后端兼容多种数据库建表、建索引、改字段已经完成,现在要做自定义表单了。我本来也更喜欢后端开发,前端也没花太多时间去学习,第一次用Vue也就看了几天文档就抄别人的代码来开发了,有些底层的原理并不是很明白。现在必须要把重心转到前端了,虽然有点难度,还是要努力克服。
自定义表单的设计、数据渲染之前也看过一个产品的源码。那个源码是基于Vue 2开发,我现在的前端是用Vue 3的;还有就是那代码写得很乱也有很多BUG,所以我想找一下有没有这方便的开源项目。网上搜索一下,其实挺多的,但我要用Vue 3
+ Element Plus
,就排除了一些,主要考虑以下两个项目:
一、Variant Form 3
这个项目有在Element Plus
官网做广告,所以很早就发现它了。支持Vue2
和Vue3
,只支持Element Plus
UI框架。有社区版和商业版。
社区版源码:https://gitee.com/vdpadmin/variant-form3-vite
因为它有商业版本,所以文档很齐全,还有教学视频,微信群等。它的二次开发文档需要花20元钱才能下载的,我暂时没有购买。
二、Form Create
官网地址:http://www.form-create.com,之前是Vue2
版的,现在也有Vue3
版本了。表单渲染能支持5种UI框架:ElementPlus
,Ant-design-vue
,naive-ui
,arco-design
,TDesign
,但表单设计器只能用Element Plus
。
表单设计器源码:https://github.com/xaboy/form-create-designer/tree/next
表单展示与渲染源码:https://github.com/xaboy/form-create/tree/next
注意项目的next
分支才是Vue3版本的代码,默认分支为Vue2版本。
Form Create
有在线文档、QQ群。基于MIT
协议,可以任意使用。
三、对比
项目名 | 架构 | 协议 | 功能 | 人气(Star) |
---|---|---|---|---|
1.Variant Form | 只支持Element Plus
|
有免费版,也有商业版 | 4种布局,能Undo/Redo,可设置事件 | 3365 |
2.Form Create | 支持5种UI框架 | MIT协议,任意使用 | 只有栅格布局 | 6017 |
Form Create的社区人气较高,可能是因为它支持多种UI,并且协议宽松。下载源码后捣鼓了很久才编译成功(node版本要14.x才行),因为每一个小控件(文本框、下拉框等)都要单独打包发布,复杂度有点高。试用了之后设计器能用,但渲染器会报错vue-router.mjs:3472 TypeError: Cannot read properties of null (reading 'parentNode')
,我是按示例来写的代码,搞不懂为什么,只能怪它不稳定了。另外缺少子表控件和事件配置,这个很多表单都会用到的,如果自己开发的话,可能也会花很多时间。
Variant Form功能会更强一些,但是子表控件也是商业版本中才有。下载了源码编译成功了,使用时会报错,原来是package.json
文件中没有写main属性,导致找不到入口;重新打包后,设计器和渲染器都可以正常使用。
四、总结
我的前端水平不是很强,觉得使用Variant Form
更容易上手,就先决定用它来开发我的低代码平台表单功能。
如果你前端技术比较好,或者你想用Element Plus
之外的UI的话,可以试下Form Create
。