2017-1-9 小程序诞生以来,历经多年的迭代升级,上线小程序现在非常多,成为继 Web、iOS、Android 之后,第四大主流开发技术官方支持,性能开发最好
| 框架 | 版本 | 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 小程序、百度小程序、字节跳动小程序、钉钉小程序、京东小程序、飞书小程序、快手小程序、Android、iOS、快应用,taro 额外支持鸿蒙 OS,uniapp 额外支持360小程序
相比上个版本 3.4,提升很明显,几乎提高了一半的性能,但目前处于公开测试期间,老项目升级的话有一定成本。Taro 3.5 构建时默认使用 terser,虽然它现在支持使用 esbuild,但打包esnext目标后体积增大 33% 左右,换成es2015、es2016后,与esnext变化不大
优点:开发和真机效果一样、Typescript 类型声明完善
缺点:热更新无效(需要手动刷新)、Composition API 无效、beta 版本刚发布
处于内部测试有很长一段时间了,相对来说,几乎各项数据都比 taro 要好,但仍然有需要考虑的地方,uniapp 从编译速度来看几乎可以说是无感知,但这并不是最终消耗的时间,如果是web端,可以做到实时更新,但小程序需要等微信开发者工具编译完成,这个时间也需要5 - 10秒。uniapp 使用 vite(rollup)打包后仅79kb,这意味着在2M的限制下使用 uniapp 进行开发,可以开发更多的功能,但是在项目不大的情况下,通过分包可以忽略这个特性
优点:编译速度快,构建产物体积小
缺点:开发和真机效果不一致(canvas 动态设置宽高,CSS样式)、频繁出现FSWatcher错误导致需要重新编译、Typescript 类型声明支持很差
Taro:react 基础的适合使用
uni-app: vue基础适合使用