背景
由于微信小程序原生开发,和团队技术栈(react)不统一,不支持ES7以上的高级语法,不支持工程化、缺少统一配置等局限性,选型考虑市面上主流小程序框架,期望能够:
- 满足当前需求,并能扩展到其他端,比如H5
- 技术栈统一,降低开发维护成本,提升研发效率
- 有不错的性能
框架语言
- 微信原生 wxml,类xml写法
- Vue: uni-app、mpvue
- React: taro 、rax、remax
开发维护成本
框架 | Uni-app | Mpvue | Remax | Rax | Taro |
---|---|---|---|---|---|
语法 | Vue | Vue | React | React | React |
guthub stars | 36.5k | 20.4k,停止维护 | 4.3k | 7.7k | 30.9k |
文档案例 | 丰富 | 较少 | 少 | 少 | 丰富 |
首先看团队的技术栈,目前以react为主,大家对react也更熟悉一些,考虑到开发维护成本,首选支持react语法的框架;在社区活跃度方面,uni-app和taro最为活跃,文档案例也最为丰富。
跨端兼容性
框架 | Uni-app | Remax | Rax | Taro |
---|---|---|---|---|
微信小程序 | 支持 | 支持 | 支持 | 支持 |
H5 | 支持 | 支持 | 支持 | 支持 |
支付宝小程序 | 支持 | 支持 | 支持 | 支持 |
APP | 支持 | 不支持 | 不支持 | 支持 |
QQ小程序 | 支持 | 不支持 | 不支持 | 支持 |
快应用 | 支持 | 不支持 | 不支持 | 支持 |
从跨端兼容性上考虑,uni-app和taro能力最好。
打包体积
小程序对应用内存大小在2M,在框架选择上应选择更轻量的
框架 | 微信小程序 | Uni-app | Taro |
---|---|---|---|
空包 | 5k | 61k | 284k |
项目包 | 297k | 395k | 1016k |
Uni-app
Taro
性能
长列表数据 | 微信小程序 | Uni-app | Taro |
---|---|---|---|
200 | 770 | 641 | 752 |
400 | 876 | 741 | 974 |
800 | 1406 | 1113 | 1547 |
在渲染长列表时,uni-app借助vue3和vite,在性能上做到了最好,taro也有接近原生小程序的性能。
总结
综上,taro
的优势在于符合团队技术栈,能让我们在书写更有效率的代码、拥有更丰富的生态的同时,还有不错的性能
通过上述几个方面的对比,taro
基本算是最适合团队的小程序框架。