公司要做一套电商类小程序(多端),前端技术这块在uniapp和taro之间做选择,为此做了一次调研,顺便发表一篇博客,希望能帮助到广大开发者,哈哈哈哈,好了,不吹了
技术层面
均支持使用 npm/yarn 安装管理第三方依赖
均支持使用 ES6 甚至更新的ES规范
均支持使用 less/scss/ts 等预编译器
uniapp
使用 Vue.js 开发所有前端应用的框架
支持可视化构建(HBuildX)和npm or yarn 命令构建
开发工具:自家HBuildX
taro
支持使用 React/Vue/Nerv 等框架来开发
只能用npm or yarn构建
开发工具:官方推荐VScode并
夸端支持
Uniapp(11个平台)
H5
安卓
iOS
微信小程序
360小程序
百度小程序
支付宝小程序
字节跳动小程序
QQ 小程序
快手小程序
快应用
注:- 快应用仅支持 vivo 、oppo、华为
- 360小程序仅 windows平台支持,需要在360浏览器中打开
Taro(12个)
H5
ReactNative
微信小程序
京东小程序
百度小程序
支付宝小程序
字节跳动小程序
QQ 小程序
钉钉小程序
企业微信小程序
支付宝 IOT 小程序
飞书小程序
实际案例
uniapp:分布均匀,不同端之间都有实际案例
taro:几乎都是微信小程序,其他端很少
数据来源于官网(具体详情可自行查看)
社区活跃度
uniapp
taro
总体而言二者大差不差,论坛上都是最新的消息,uniapp是几秒前几分钟前
taro的是几小时前几天前,并且uniapp有自己的论坛社区在dcloud官网下,而taro是寄居在gethub上的
可用轮子
uniapp(5139)
taro(158)
兼容性
兼容性这一块,taro大部分框架属性对微信小程序的支持最好,其余次之
uniapp对于不同平台无法兼容的一些属性提供了专用的属性
如下图
uniapp
taro
最后:根据个人实际构建测试分析
Uniapp:通过HbuiderX可视化构建和npm命令构建文件格式不同,可视化构建没有资源配置文件,容易在编译等阶段引发问题。编译后的dist文件夹对于不同端有明确划分
Taro:统一的命令构建构建,配置文件齐全,但编译后的不同端项目没有明确划分,需要逐个编译。官方提供了NutUI 视图组件(vue)以京东风格的一套视图组件(但经过测试,兼容性问题很大,并且自身存在问题)
*⚠️注:由于只是初步调研,且没有实际开发经验,以上言论仅供参考