Skip to content

UI 库选型篇

背景

unibest 作为最好的 uniapp 开发模板,那 UI 框架 的选择也是要仔细斟酌的。

unibest 作为 vue3 项目,vue2 时代的 uview 就不考虑在内了。但是在 uview 的基础上衍生出来的支持 vue3uview 系ui框架 还有不少,而且热度很高。

官方维护的 uni-ui,支持全端,而且有类型提示,但样式略丑,且其他优秀的 UI 库 已经包含了 uni-ui 的组件,所以直接用第三方 UI 库 就好了。

tip1: uni-ui 本身是 js 开发的,但是官方提供了完备的类型提示( by @uni-helper/uni-ui-types)所以看起来就像是 ts 开发的一样,开发体验很好。所有的组件都有提示,很方便,很贴心。

tip2: 再次重申一下 uview 不支持 Vue3,不然又有人问我为啥不用 uview。(臣妾做不到啊~)

UI 库总览

经过搜寻了一番,目前参加对比的 UI 框架有:

还有 2 个 UI 框架也很优秀,但是只有部分组件开源免费,大半组件收费,咱暂不考虑。

温馨提示:收费没有对错,只要做得好,提供优质的组件,别人愿意付费,也是极好的。


下面通过几个方面对 UI 库 进行对比

开源热度

截止到 2024-05-30 发表文章时的数据:

UI 框架uv-uiuview-pluswot-uiTuniaoUI
github stars568362492192
gitee stars55512635-
github forks1.1k15818820
gitee forks75430-

其实到这里就一决高下了,github star 数uv-ui(568) > wot-ui(492) > uview-plus(362) > TuniaoUI(192),其中 uv-uiwot-ui 拔得头筹。

Star History Chart

源码仓库地址展示如下,纯粹为了方便大家查阅 (虽然大概率你们也不会去访问,/手动狗头)

UI 框架文档地址githubgitee
uv-uihttps://www.uvui.cn/https://github.com/climblee/uv-uihttps://gitee.com/climblee/uv-ui
uview-plushttps://uiadmin.net/uview-plus/https://github.com/ijry/uview-plushttps://gitee.com/uiadmin/uview-plus
wot-uihttps://wot-design-uni.netlify.app/https://github.com/Moonofweisheng/wot-design-unihttps://gitee.com/wot-design-uni/wot-design-uni
TuniaoUIhttps://vue3.tuniaokj.com/zh-CN/https://github.com/tuniaoTech/tuniaoui-rc-vue3-uniapp-

接着奏乐接着舞,我们继续正文 ^_^

多端支持情况

UI 框架uv-uiuview-pluswot-uiTuniaoUI
h5
app(ios)
app(android)
微信小程序
支付宝小程序
QQ 小程序
百度小程序
头条小程序

组件数量

UI 框架uv-uiuview-pluswot-uiTuniaoUI
总数67677155
基础组件81185
表单组件16172014
数据组件134184
反馈组件810168
布局组件79-8
导航组件8895
其他组件78-5
内容组件---6

组件数:wot(71) > uv-ui(67) = uview-plus(67) > TuniaoUI(55)

ts 支持情况

查看 4 个组件库的源码,可以了解到:

  • uv-uiuView-plus 都是 js 写的,并非 ts,可以通过 ttou/uv-typings 提供类型支持。
  • wotTuniaoUI 都是 ts 写的,编码体验会好很多。

小知识:代码里如何辨别一个库是否有 ts 支持,写代码的时候按 ctrl + i (Mac 里 cmd + i),如果有提示就是有,啥都没有就是没有。

举个例子,编写 <xx-button type="" ...,在 type="" 双引号里面按 ctrl + i,看提示就知道了。

  • wot 有提示

alt text

  • uv-ui 无提示

alt text

tsconfig.json 文件里面 types 里面的 @ttou/uv-typings/v3 改为 @ttou/uv-typings/v2 就正常了(也是群友发现的),如下。

alt text

wot-uiuv-ui 皇城 PK

wot-uiuv-ui 皇城 PK

Star History Chart

目前 wot-ui 还是比不过 uv-ui 的,但是我 wot-ui 有反超的势头。主要是看了源码后,还是选定了 vue3+ts 编写的 wot-ui

别说我偏心,两位 ui 框架的作者都是我的好友,我是 uv-ui 群的管理员,wot-ui 作者在我的大群里面。选择 wot-ui 确实因为它很优秀。

总结

很高兴我们已经为宇宙最强 uniapp 开发模板 unibest 选好了 UI 组件库wot-ui 是最终的幸运儿。为此我特意去 wot-ui 官网里面捐赠了一杯咖啡钱给作者,开源不易,要支持一下。

Released under the MIT License.