自 Vue3 发布后,各家第三方库开始陆续重构并支持 Vue3,国内两大知名框架Element Plus和Ant Design Vue也相续发布新版支持 Vue3。随着 Vue3 的不断成熟稳定,也实际应用到了我们的工作中,我们到底应该怎么选择呢?本文也翻阅相关资料对两个框架进行对比和测评。
对比
| 框架名称 | 组件数量 | 单元测试率 | 维护团队 | GitHub Star数(2022/03/10) |
|---|---|---|---|---|
| Element Plus | 68 | 81% | 饿了么 | 19k |
| Ant Design Vue 3.x | 64 | 87% | 社区主导,蚂蚁金服技术支持 | 17.8k |
下载量
从上图可以看出,
Element Plus正式版上线后,修复了很多问题,下载量也逐步上升,也是因为Element UI有比较好的口碑和热度。而Ant Design Vue是比较平稳的,依然也是很多人的选择。
框架的变化
Element Plus 为了适配 Vue 3 对 Element UI 进行的完全重构。也是因为 Elment UI 以前再第三方组件库方面做了太多的修修补补,也没办法解决问题,而这次的重构完完全全解决了这一痛点。
Ant Design Vue 自1.x开始就只是支出Vue2,随着Vue3的普及,Ant Design Vue就推出了2.x来兼容Vue3,但是并没有什么新特性的加入,完完全全只是为了做兼容处理。后续为了更好的兼容Vue3,就推出了3.x版本,性能和功能上都有了很大的提升,相比2.x版本更加成熟稳定了。
兼容性
Element Plus 和 Ant Design Vue3 都已不在支持 IE 了,并不是他们自己放弃了 IE 而是 Vue3 本身已经放弃了 IE。如果想在低版本浏览器上正常使用这两个框架,可使用 Babel、ESBuild 或其他转换工具,并引入相应的 polyfill。
组件特点
- table 组件:Element Plus 自带 virtual scroll ,Ant Design Vue 需要购买 Surely 这个高级包。如果需要用表格处理大量数据,Element Plus 更合适。Ant Design table ,定义好 columns 有几列后,用 template 写法就无法用 v-if 去隐藏某一列
- 在 Ant Design Vue 里,Modal.confirm 某些 api 不支持 promise 写法,需要写在回调函数里
- TreeSelect 组件:Ant Design tree 组件写自定义内容不方便。而 Element 更好用。
- form 表单组件:两个框架功能基本一致,包含数据收集,表单校验和提交功能。
input、checkbox、select等常用功能两个框架都有。 - Ant Design Vue 2 & 3 是最早支持 Vue 3 的框架之一,新版本解决了很多 Vue 用户群在旧版本不喜欢的「单向数据流 value + change event」,实现了全 v-model 使用组件。
维护状态
Element Plus 是由饿了么团队开发支持和维护。从vue3发布正式版后开始重构的付出,大家有目共睹,可以放心去用,不要担心维护问题。
Ant Design Vue 是 Ant Design的 Vue 实现,UI 风格和 Ant Design 保持 1:1 复刻。Ant Design Vue 虽然是以个人开发开始起步的,算是社区版,但它得到了蚂蚁官方认可,挂在蚂蚁金服底下的正式项目,保持了不错的更新和维护状态。
感受
个人体验
我更加倾向于 element plus , 也可能是因为我最早接触的是element ui管理系统的原因,视觉感上更加舒服,文档详细,更加容易上手。(用习惯的原因)
而Ant Design vue 3.x ,也有一定的优势。从功能上来讲,后者更加齐全,组件更加强大。有兴趣的同学可以深入了解www.antdv.com/docs/vue/in…
个人建议
如果是想快速上手的话,建议用 element plus ;反之比较复杂的后台管理平台,可以采用 ant design vue ,而且 ant design vue 无论表格还是表单,都是高度可配置化的。