公司新产品要求发布到各家小程序,最近研究对比了社区主流的几家小程序开发框架,独坑不如拉人众坑,分享给各位,欢迎和我一起入坑:)
最近老板不知怎的很重视各种小程序平台,感觉要靠小程序完成今年大半kpi。产品和运营自然找我们要方案,一方面要快速铺开各种小程序,另一头hr又不给前端团队加headcount。
目前几杆枪,主要在微信和H5上,若按照各家规范进行原生小程序开发,肯定是不够的;
所幸业内有人在做跨各种小程序的框架,趁机研究一番,看看到底做的怎么样。
我们主要分析了如下小程序开发框架(应该差不多全了),主要包括:
框架
技术栈
案例
微信小程序
支付宝小程序
百度小程序
头条小程序
H5
App
Taro
React
丰富
⭕
⭕
⭕
⭕
⭕
⭕
娜娜奇
React
少
⭕
⭕️
⭕️
⭕️
⭕️
❌
wepy
Vue
丰富
⭕
❌
❌
❌
❌
❌
mpvue
Vue
丰富
⭕
❌
❌
❌
⭕️
❌
uni-app
Vue
丰富
⭕
⭕️
⭕️
⭕
⭕️
⭕
megalo
Vue
少
⭕
⭕️
⭕️
❌
❌
❌
OKAM
Vue
少
⭕
⭕
⭕
⭕
❌
❌
Mpx
Vue
少
⭕
❌
❌
❌
❌
❌
Tips:如上表格包含了各框架在微信、支付宝、百度、头条、H5、App多平台的支持情况。
我们的筛选权重:
最后,我们决定把taro、uni-app两个框架作为候选,做进一步对比。uni-app其实内置了mpvue,感觉是个加强版,拓展到多端了。其实这2个框架的github star差的有点多,taro远超uni-app,但不能根据这个直接做决定,对比报告还是得做的,果然最后发现不能以star取人。
看了几天文档对2个框架大概摸到门道,理了下对比思路,还是认真从如下几个维度比较下taro、uni-app两个框架:
数量对比
双方都宣传能支持微信、百度、支付宝、今日头条等小程序,H5,以及iOS和Android的App。看起来都不错。
质量对比
为验证最终跨端效果,我们分别下载 taro、uni-app的示例项目,体验编译到不同平台的运行效果。
首先选择 taro 官方账号下的知乎小程序示例(github地址),运行到各端后的效果:
从如上截图来看,taro成功实现了多端编译;我们接着更细致的对比了一下各端运行,发现taro在如下方面存在问题:
之后点击二级页、三级页,发现H5端的其它问题:
针对这些问题,我们复查了一遍taro官网,官网倒是明确说明部分事件函数在H5端不生效,主要包括:
方法
作用
onPullDownRefresh
页面相关事件处理函数--监听用户下拉动作
onReachBottom
页面上拉触底事件的处理函数
onShareAppMessage
用户点击右上角转发
onPageScroll
页面滚动触发事件的处理函数
onTabItemTap
当前是 tab 页时,点击 tab 时触发
不过进一步仔细发现,taro文档里大量存在只有微信平台打勾的情况,H5和App侧大量的X。这说明跨其他平台很难平滑迁移。
接着运行uni-app示例项目,选择官方账号下的看图App模板测试,运行到各端后效果:
从上图来看,uni-app 同样成功的实现了多端编译;我们接着更细致的对比了一下各端运行,发现如下问题:
之后点击二级页、三级页,没再发现明显问题。
从两个项目的实际运行来看,uni-app的跨端效果更好(其实不止对比了官方demo,我们自己也写了小demo),特别是在H5平台相比taro要完善不少。
另外,在进行两个框架的发行编译时,我们还发现了一个差异点:
dist
目录下不区分编译平台,同一时间仅可编译到一个平台,不支持多个平台对比查看运行效果;dist
目录区分编译平台,故支持同时编译到多个平台,可同时对比查看不同平台运行效果,这个体验是不错的,更有跨端开发的感觉 另外uni-app的条件编译比较完善,这个在处理平台差异时很有用。案例对比
综合比较,uni-app跨端质量更好,真实跨端案例也更多。
我们在网上查阅了一些文章,有人认为taro的运行性能好于mpvue,而uni-app集成了mpvue,这个性能问题就得重点关注了。
不管是taro还是uni-app,setData
的优化都是小程序性能优化中最为重要之事,且优化主要有两个方向:
setData
调用的频次setData
传输的数据然后在调研中发现,uni-app其实还集成了另一个前述参选的框架megalo
。
前面调研时知道megalo
是做了差量数据更新的,那就应该问题不大。
我们自己动手写了一个长列表测试,分别写了taro版、uni-app版、原生小程序版,前几页数据滚动时差不多,7、8页过去发现uni-app加载新页面时有变慢的感觉。推测uni-app的长列表没有recycle机制,花了点时间把demo改进了下,滚动下面时把前面几页的数据干掉,然后再滚动就感受不到流畅度的差别了。
总结:taro在性能优化上做的更细致,使用uni-app需要自己注意代码优化。
taro 和 uni-app 的环境搭建及项目创建、运行编译都比较简单。
taro的安装及使用:
uni-app的安装及使用:
开发流程方面,taro和uni-app均是以微信小程序为基础,也都针对小程序的开发弊端,提供了更优秀的体验,比如:
开发工具方面,taro官方未特别推荐IDE,但提供了vscode支持的d.ts;uni-app推荐的开发工具是他自家的HBuilderX,用它可以不配环境,开箱即用;hbuilder以前接触过,当时没深研究,新版还挺让我意外,真没想到国人的开发工具可以做到这样,尤其是他家的markdown支持真心不错,于是本文就是在hbuilder里写的(已经有情感分了哈哈)。
总结:两个框架都支持现代前端开发流程。hbuilder对uni-app提供了优化定制,但对不熟悉的开发者有一定适应成本。另外hbuilder自带一个编译器,和cli装在项目下的编译器是2个,这个坑不少新人要注意别踩。
学习交流
生态
橱窗里的衣服再漂亮,适合自己的才有用,开发框架亦是如此。
我们根据业务需求及团队成员现状,形成如下对比:
因此,最后决定使用uni-app作为新项目的开发框架。但挺诚心感谢其他开源框架的作者。
原网址: 访问
创建于: 2025-07-17 12:11:49
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论