小程序框架 Taro 和 Uniapp 对比

偏向技术
/ 0 评论 / 751 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年06月15日,已超过704天没有更新,若内容或图片失效,请留言反馈。

目前,还在维护的跨端小程序框架主要有 tarouniapp,两者都在不断的迭代开发,以下是两者截止至目前最新的版本

框架 版本 Issues(open) 总提交
Taro 3.4.x 3.4.11 825 8076
Taro 3.5.x 3.5.0-beta.2 825 8310
Uniapp 3.x 3.0.0-alpha 955 9699

taro 和 uniapp 均支持H5微信小程序支付宝小程序QQ 小程序百度小程序字节跳动小程序钉钉小程序京东小程序飞书小程序快手小程序AndroidiOS快应用,taro 额外支持鸿蒙 OS,uniapp 额外支持 360小程序

两者都有较为完善的文档,taro 文档 UI 设计较 uniapp 偏现代化,支持深色模式,问题反馈主要由QQ群、微信群、GIthub Issue组成,

项目

下面以一个简单的页面编译到微信小程序为例

源码: taro3.4taro3.5uniapp3.0,一样的功能和页面

使用的依赖包有unplugin-auto-importunplugin-vue-componentsunocsspiniaunocss - presetIconsvueuse/core

未标题-1

编译结果如下:

框架 编译框架 编译速度(取10次平均值) 默认构建产物 构建时长
Taro 3.4 webpack v4 12.108s 481kb 15.629s
Taro 3.5 beta webpack v5 6.585s 266kb 12.024s
Uniapp 3.0 alpha vite v2.9 1.817s 79kb 5.7s

Taro 3.5

Taro 3.5相比上个版本 3.4,提升很明显,几乎提高了一半的性能,但目前处于公开测试期间,老项目升级的话有一定成本。Taro 3.5 构建时默认使用 terser,虽然它现在支持使用 esbuild,但打包esnext目标后体积增大 33% 左右,换成es2015es2016后,与esnext变化不大

优点:开发和真机效果一样、Typescript 类型声明完善
缺点:热更新无效(需要手动刷新)、Composition API 无效、beta 版本刚发布

Uniapp 3.0

Uniapp 3.0 处于内部测试有很长一段时间了,相对来说,几乎各项数据都比 taro 要好,但仍然有需要考虑的地方,uniapp 从编译速度来看几乎可以说是无感知,但这并不是最终消耗的时间,如果是web端,可以做到实时更新,但小程序需要等微信开发者工具编译完成,这个时间也需要5 - 10秒。uniapp 使用 vite(rollup)打包后仅79kb,这意味着在2M的限制下使用 uniapp 进行开发,可以开发更多的功能,但是在项目不大的情况下,通过分包可以忽略这个特性

优点:编译速度快,构建产物体积小
缺点:开发和真机效果不一致(canvas 动态设置宽高,CSS样式)、频繁出现FSWatcher错误导致需要重新编译、Typescript 类型声明支持很差

总结

综上所述,带来差异的根本原因是 vite(rollup) 和 webpack 的打包方式不同,vite 旨在成为下一代前端开发与构建工具,而实际上是否使用和 vite 类似的打包方案,已经成为区分是不是下一代前端项目的标准了,vite 的出现也让越来越多的框架工具开始考虑支持脱离框架本身了。

0

评论 (0)

取消