选手:
- Taro
- Uniapp
- Kbone
- Mpx
- Chameleon
- Rax
- Remax
不知名选手:
- Rax(淘宝)支持微信小程序、支付宝小程序、Weex 应用和 Flutter 应用,使用 React
- Remax(蚂蚁金服)支持阿里系小程序、微信小程序和头条小程序,使用 React
- Antmove(高德)小程序转换器
名称 | Star | 协议 | DSL | 性能 | Demo 体积(KB) | Runtime 体积(KB) | 支持平台 | 跨端组件库 | 工具链 | 所属公司 | 所属公司小程序项目 | 优秀案例 | 优点 | 缺点 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Taro | 26.2k | MIT | React | 7 分 | 183 | 156 | 微信小程序 支付宝小程序 H5 百度小程序 字节跳动小程序 快应用 |
支持 | webpack redux mobx umijs 开放生态 |
京东 | 京东购物 京东快递 京东到家 京东超市 京东好物街 京喜 |
甩甩宝宝 货拉拉 淘票票 |
功能完善、社区活跃 | 未优化的情况下基础包体积太大 |
Uniapp | 23.2K | Apache 2.0 | Vue | 8 分 | 114 | 87 | 同 Taro | 支持 | 官方插件市场 | DCLOUD | uni-app 组件库 | VIVO 商城 CSDN |
页面渲染性能较好 | 社区活跃度较低,没有自身产品背书 |
Kbone | 3.3K | BSD 3-Clause | React & Vue | 7 分 | 820 | 168 | 微信小程序 H5 |
不支持 | 大部分开源生态 | 腾讯 | 微信开放社区 | 无 | 小程序团队亲儿子 | 可用性差,生态不完善 |
Mpx | 2.3K | Apache 2.0 | Vue | 9 分 | 152 | 94 | 微信小程序 支付宝小程序 百度小程序 qq 小程序 头条小程序 |
不支持 | 自建生态 | 滴滴 | 滴滴出行 | 番茄借阅 | 性能接近于原生 | 可用性未知,无法对接开源社区,官方案例划水,疑似为 KPI 项目 |
Chameleon | 7.6K | Apache 2.0 | Vue | 9 分 | 无法安装 | 无法安装 | 同 mpx H5 |
不支持 | 自建生态 | 滴滴 | 青桔单车 | 芒果 TV 视频 | 性能不错,支持 H5 | 案例极少,框架跨平台也仅限于可用 |
通过以上对比以及用户反馈来看,目前 Taro 和 Uniapp 是相对成熟的方案,而 Taro 和 Uniapp 各有优劣:
-
Taro 采用动态编译的方案,由框架自身提供跨平台能力
- 优点:能够较好地做到跨平台一致性,由于其是最早开始做跨平台编译的,所以框架生态和技术纵深都很不错,而京东自身大量的小程序实践也在反哺 Taro 进行工程迭代
- 缺点:动态编译,存在一定的性能损耗,包体积相比于其他转译类框架大一些
-
Uniapp 采用静态转译的方案,在代码层面进行差异化,由开发者控制跨平台的细节
- 优点:渲染性能更加接近于原生小程序(在微信小程序端),基于 vue-cli 实现的转译方案,上手难度较低
- 缺点:社区活跃度低,商业化的小程序案例少,没有大公司背书