
深入探讨了主流的小程序开发框架,包括wepy、mpvue、uni-app和taro,分析了它们的跨端支持、性能、学习曲线和生态系统。 ###
引言
上周,Taro团队发布了一份《Applets多端框架综合评估》,让开发者初步了解了业界主流的跨端框架。这份报告的发布,无疑为开发者提供了一个宝贵的参考。然而,要进行全面的横向评估,需要大量的时间和精力。这不仅包括查看官方文档,还需要实际编写测试演示,比较各个平台的功能和性能,确保它们的表现符合宣传。
评估实验简介
为了更深入地了解这些框架的实际表现,我们的团队投入了一周的时间,完成了对多个框架的详细评估。我们将分享在实际开发过程中遇到的问题以及最终的测试结果。
开发内容
我们选择开发一个模仿微博小程序主页的复杂长列表,该列表支持下拉刷新、上拉翻页等功能。具体界面如下:
开发版本
我们共开发了6个版本,包括微信原生版、wepy版、mpvue版、taro版、uni-app版和变色龙版。根据官方网站的指南,这些框架均通过CLI模式安装,确保使用的是最新稳定版本。
开源测试代码
为了保证评估的透明度和可复现性,我们开源了所有的测试代码。如果任何开发者认为测试代码编写不正确,欢迎提交PR。
测试型号与环境
测试设备:红米Redmi 6 Pro,MIUI 10.2.2.0稳定版(最新版本),微信7.0.3版(最新版)。
测试环境:在每个框架开始测试之前,杀死所有App进程并清除内存,以确保测试机环境基本一致。每次本地读取静态数据,以屏蔽网络差异。
测试维度
我们主要从以下几个方面进行了测试:
- 跨端支持情况
- 性能表现
- 学习门槛
- 工具和周边生态
跨端支持情况
“开发一次,运行 everywhere”是每个程序员的梦想。然而,现实往往并非如此,很多时候是“开发一次,调试多次”。这些框架是否真的能够实现一次开发,多端运行呢?我们依次向每个平台发布了上述内容,以验证每个框架在各端的兼容性。结果如下:
平台 | 微信小程序 | 支付宝小程序 | 百度小程序 | 头条小程序 | H5端 | App端 |
---|---|---|---|---|---|---|
微信原生 | ⭕ | ❌ | ❌ | ❌ | ❌ | ❌ |
wepy | ⭕ | ❌ | ❌ | ❌ | ❌ | ❌ |
mpvue | ⭕ | ⭕ | ⭕ | ❌ | ❌ | ❌ |
taro | ⭕ | ⭕ | ⭕ | ❌ | 上拉加载/下拉刷新失败 | 上拉加载失败 |
uni-app | ⭕ | ⭕ | ⭕ | ⭕ | ⭕ | 无法滚动列表,无法测试上拉加载/下拉刷新 |
变色龙 | ⭕ | ❌ | ❌ | ❌ | ❌ | ❌ |
测试结果说明:
- ⭕ 表示支持并正常工作
- ❌ 表示不支持
- 其他表示支持,但存在一些错误或兼容性问题
从这个简单的例子可以看出,跨端支持的评估结论为:uni-app > taro > 变色龙 > mpvue > wepy > 微信原生小程序。
性能表现
性能是评估一个开发框架的重要指标之一。我们主要关注以下几个方面的性能:
- 启动时间
- 页面加载速度
- 响应时间
- 资源占用
经过测试,uni-app 和 taro 在性能表现上较为优秀,尤其是在启动时间和页面加载速度方面。mpvue 和 wepy 的表现则稍逊一筹,尤其是在资源占用方面。
学习门槛
学习门槛是开发者选择框架时考虑的重要因素之一。我们主要从以下几个方面进行了评估:
- 文档质量
- 学习曲线
- 社区活跃度
- 技术支持
uni-app 和 taro 的文档质量较高,学习曲线较为平缓,社区活跃度也较高。mpvue 和 wepy 的文档质量一般,学习曲线较陡峭,社区活跃度较低。
工具和周边生态
一个成熟的开发框架不仅需要优秀的性能和低学习门槛,还需要丰富的工具和周边生态。我们主要从以下几个方面进行了评估:
- 开发工具
- 插件市场
- 第三方库支持
- 社区资源
uni-app 在工具和周边生态方面表现最为出色,提供了丰富的开发工具、插件市场和第三方库支持。taro 也表现不错,但在插件市场和第三方库支持方面略逊于 uni-app。mpvue 和 wepy 在这些方面则相对较弱。
总结
通过这次深入的评估,我们可以得出以下结论:
- uni-app 是目前最成熟的小程序开发框架,无论是在跨端支持、性能表现、学习门槛还是工具和周边生态方面,都表现出色。
- taro 也是一个非常优秀的选择,特别是在跨端支持和性能表现方面。
- mpvue 和 wepy 虽然也有一定的优势,但在某些方面还有待提升。
- 变色龙 目前的跨端支持较弱,建议谨慎选择。
希望这篇评估报告能为开发者选择合适的小程序开发框架提供有价值的参考。
- 继续阅读本文相关话题
- 小程序开发流程
- 推荐文章
- 常见问题