开发跨端微信小程序框架选型指南

article/2025/9/10 15:35:08

多端框架uni-app和Taro选型对比

一. 背景

小程序原生开发有不少槽点:

1.原生wxml开发对Node、预编译器、webpack支持不好,影响开发效率和工程构建流程。所以大公司都会用框架开发
2.微信定义的这套语法,wxml、wxs,以及wx:if等语法,私有化太强。不如正经学vue或react,学会了全端通用,而不是只为微信小程序
3.vue或react生态里有太多周边工具,可以提高开发效率,比如ide、校验器、三方库。。。而微信的开发者工具和专业编辑器相比实在不好用,个性化设置也非常少

作为前端工程师,除了微信小程序,还要开发web、其他小程序甚至App,人们不喜欢来回切换开发工具和变更语法思考方式。

一些多端框架uni-app或taro可以解决这些问题,但开发者又经常有些顾虑:

1.怕使用框架后,微信小程序里有的功能无法实现,受制于uni-app的更新
2.怕性能不如原生WXML
3.怕框架不成熟,跳到坑里
4.担心社区生态不完善

本文从开发者关心的功能、性能、学习门槛、开发体验、生态、可扩展性等维度对uniapptaro进行了分析测评。

二. uni-app和Taro的介绍

1.### uni-app:uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS、Android、H5、小程序等多个平台。

详细介绍见官方文档:uniapp.dcloud.io/

1.### taro:taro是多端统一开发框架,支持用 React 的开发方式编写一次代码,生成能运行在微信/百度/支付宝/字节跳动小程序、H5、React Native 等的应用.

详细介绍见官网:nervjs.github.io/taro/

三.uni-app和Taro的特点

1.### 官网介绍uni-app的特点:* 跨端数量更多;一套代码,可以发布到IOS,Android,小程序,H5等多个平台。

  • 平台能力不受限:在跨端的同时,通过推荐编译+平台特有API调用,可以优雅的为某平台写个性化代码,调用专有能力而不影响其他平台;支持原生代码编写和原生sdk生成。

  • 性能体验优秀:体验更好的Hybrid框架,加载新页面速度更快

  • 周边生态丰富:支持NPM包管理,兼容微信小程序自定义组件及JS,SDK,支持mpvue项目及组件,APP端支持和原生混合编码;相当于微信小程序中丰富的三方sdk克直接用于跨平台开发。

  • 学习成本低:基于通前端技术栈,采用vue语法+微信小程序api,无额外学习成本。

  • 开发成本低:人力成本大幅度节省,招聘,人力,管理,研发,测试各方面成本大幅度下降;HbuildX是高效开发利器,熟练掌握后研发效果至少翻倍(即便值开发一个平台)。

2.### 官网介绍taro的特点:* 多端运行:一键生成可以在微信小程序/H5/ReactNative等端运行的代码。

  • 语法风格:采用React语法标准,支持JSX书写,让代码更具表现性。
  • 组件化:支持组件化开发,让代码可以复用,让功能开发更加清晰。
  • TypeScript:全面支持TypeScript,提供更强大的生产力。
  • 现代开发流程:配套的开发工具Taro CLI让开发流程自动化,一切都从一行命令开始

四. 内容测评比较

uni-apptaro原生
1.功能相同,不限制底层API 调用相同,不限制底层API 调用相同
2.性能常规场景更优常规场景更优需要自己编写复杂代码才能提高性能(setData)
3.社区生态丰富,更多高性能组件(uni-ui,插件市场)丰富(taro-ui)丰富
4.开发体验纯vue体验,高效、统一,上手快;工程化能力强(双向绑定)遵循React语法,对于 JSX 的语法支持相对完善,taro3开始支持vue语法私有化;工程化能力弱
5.多端能力同时支持H5、多家小程序、跨平台App;官方提供了uni ui,可全端运行同时支持H5、多家小程序、跨平台App;官方提供了taro ui,只支持微信小程序和H5两端,不支持App只能用于单个平台小程序
6.学习资料完善度官方视频教程,基础文档和各种使用专题内容丰富,问题搜索效果较好,示例demo功能完备,并发布为7端上线。详见。 30多个QQ群,微信群,气氛活跃基础API文档完整,具体使用问题资源较少,问题搜索效果一般,示例demo只包含基础功能,仅发布了微信一端。详见。 9个微信群,气氛活跃官方文档
7.UI组件库uView UI (vue2 丰富,持续更新中)Nut UI (vue2/vue3. 丰富,持续更新中)Taro UI(react. 丰富,不支持抖音小程序,已两年未更新)- WeUI组件库

具体分析对比详细情况可参考:

ask.dcloud.net.cn/article/364… 或者 ask.dcloud.net.cn/article/371…

五. 总结

橱窗里的衣服再漂亮,适合自己的才有用,开发框架亦是如此。基于公司业务及团队人员技能考虑,经过开会综合考量,决定选择uni-app, 具体原因如下:

1.uni-app在不同平台的运行效果更好;
2.uni-app有它自带的IDE,能够帮助我们快速构建项目和打包项目;
3.如何在有限前端团队人数下搞定更多平台,是我们的首要考虑,没有人想踩太多坑导致任务完不成,并且跨端方面uni-app更成熟;
4.学习uni-app(vue)的学习成本更低,用户体量大,社区生态完整,开发时间和风险更低。


App端框架选型:

现在我们做的项目主要以小程序为主,但既然选择了跨端框架,就必然要考虑到后续如果开发app的情况。下列对一些热门的跨端app框架包括flutter,react native,uniapp,taro做了分析对比。

一. 各框架优劣分析

优势劣势百度搜索指数
1.flutter- UI性能可以比肩原生,编译出来的程序可以达到60bps的高性能。 Dart在 JIT模式下,速度与 JavaScript基本持平。但是 Dart支持 AOT,当以 AOT模式运行时,JavaScript便远远追不上了。优点即缺点,Dart 语言的生态小,精通成本比较高。- 不支持热更新,嵌套地狱,代码难看难维护。 UI控件API设计不佳,不适合国情,学习成本高- 应用场景有限,dart未来扑朔迷离
2.react native现成的组件,社区驱动,热加载。 可以通过 JSBundle 即时更新 App。相比原来冗长的审核和上传过程,发布和测试新功能的效率大幅提高。 纯单页的,嵌入原生App比较灵活需要具备react、原生开发能力,学习、用人成本高。 官方文档中可以发现仍有部分组件和API都区分了Android和IOS 版本,也就是说仍不能真正实现严格意义上的“一套代码,多平台使用”。 缺乏很多基本控件,第三方开源质量良莠不齐。。 rn是纯单页应用,如果一个应用的页面很多,用rn写会很崩溃,变量污染和干扰严重。
3.uni-app性能体验优秀,平台能力不受限。 学习成本低,效率高。 社区活跃,生态好,组件丰富,国内应用生态丰富度高。 支持多页面,页面之间上下文隔离,写页面较多的大型应用更合适。支持热更新,APP最新修改可以动态发布,而不需要提交APP市场审核产品少,成熟度不高。 nvue原生开发有局限性,特别是样式方面限制比较严重,定制化程度低。 APP端文档松散,api众多
4.taro平台能力不受限。 采用热加载的即时编译方式,使得App UI的开发体验得到改善。 摆脱了WebView的交互和性能问题,同时可以直接套用网页开发中的css布局机制。 可以通过 JSBundle 即时更新 App。产品少,成熟度不高。 在动画效率和性能的支持还存在一些问题,性能上不如原生Api。官方文档中可以发现仍有部分组件和API都区分了Android和IOS 版本,也就是说仍不能真正实现严格意义上的“一套代码,多平台使用”。 缺乏很多基本控件,第三方开源质量良莠不齐。 需要具备react、原生开发能力。

二. 总结

以下是论坛中一些使用过uniapp开发app的意见,仅作为参考:

1.个人感觉uniapp是数字天堂完成度较低,较不成熟的产品。来源:知乎
2.uni-app看似完美,小问题确实太多 来源:知乎
3.uni-app和taro 推荐用在跨端小程序中。跨平台的app不建议使用,可以考虑react native(产品成熟度高,体验性好),和 flutter(热度高,ui和性能接近原生)

目前的市面上多端应用开发主要还是小程序 + H5 的形式比较多,app的相对很少。一套代码横跨 iOS Android Web 和小程序比较复杂,可能会存在大量兼容性问题。uniapp开发的app目前来看没有大型的成熟案例,使用的话踩坑会比较多,所以综合考虑暂不使用uniapp去开发app应用。

uniapp语法选择

跨平台小程序的框架已选定uniapp,众所周知uniapp支持的是vue语法,vue3自出世以来备受好评,那么unipp是否要用vue3去开发呢,他对vue3的支持度是否良好,学习资料是否完善,还需深入研究。

一、uniapp对vue3的更新史

uni-app对vue3 & Vite的升级,是一个渐进式过程:

  • 2020年9月:小程序平台支持 vue3 开发,小程序平台编译器依然使用webpack;

  • 2021年5月:H5平台支持 vue3 开发,H5平台编译器升级为 Vite;

  • 2021年8月:App平台支持 vue3 开发,App平台编译器升级为 Vite;

  • 2021年11月:小程序平台编译器升级为 Vite;

至此,uni-app在全平台支持了 Vite 编译及Vue 3.x 运行。

二、vue2和vue3在开发uniapp中的对比

新版 uni-app 框架主要做了三大改进:

  • 重写框架内核:基于vue3 + ts重写内置组件和API,实现更彻底、更高效的tree-shaking

  • 新增支持 Vite 构建工具,在H5平台实现秒开预览;

  • 新增支持 Vue3.x,实现更灵活的开发方式,及更高的运行性能;

基于这三大改进,我们从语法支持,编译速度,运行性能,代码体积,学习资料五方面进行分析对比:

1.### 语法支持:新版uni-app支持Vue 3.x框架,支持组合式API,可实现更聚焦的业务开发。

Vue 3.x的一些新增特性,uni-app也已经完全支持,如: - 支持<script setup> - 支持<style scoped><style module>State-Driven Dynamic CSS(v-bind) - 支持jsxtsx(h5,app 平台支持,小程序不支持)

另外,在小程序平台,新版uni-app也扩展了更多的语法,如: - 更完善的模板语法支持(如 classstyle 支持函数、变量等,不再局限数组、对象类型) - 更完整的 props 支持(如传递函数) - 更完善的 slot 支持(如作用域插槽)

2.### 编译速度以下挑选了uni-app常用项目模板,在小程序平台编译,测试其编译时间:

从上图对比数据来看,我们可以得出结论:小程序平台,vue 3.x版本下的运行编译,相比vue 2.6版本,编译性能至少提升30%;且项目越复杂,编译性能提升越明显,可以达到40% ~ 50%。

3.### 运行性能开发一个仿微博小程序首页的复杂长列表,支持下拉刷新、上拉翻页、点赞。界面如下:

进行多次测试,求其平均值,结果如下:

记录条数2004006008001000
vue230ms43ms56ms72ms90ms
vue38ms9ms9ms8ms9ms

从表格中可以看出:

  • 随着页面记录的增加,vue 2.6版本的uni-app项目,点赞组件响应时间快速增加,响应越来越慢;
  • 基于vue 3.xuni-app项目,点赞组件的响应时间跟页面条数无关,一直保持极高的响应灵敏度,性能体验远高于vue 2.6版本。

4.### 代码体积选择uni-app常用项目模板,在小程序平台,分别测试vue 2.6vue 3.x的编译包大小

从统计结果来看,uni-appvue3.x版本,在小程序平台上也有大幅瘦身。

5.### 学习资料* 文档。官网对 vue2和vue3,以及升级迁移都有专门的官方文档,另外也可参考vue3官方文档

  • 视频课程。官方视频教程和大多数视频课程以vue2为主的多,vue3相对较少
  • 插件市场。目前插件市场中vue2的插件数量多于vue3

三、总结

综上,以数字说话,vue3版本uni-app开发的是有诸多好处的

  • 更多的语法支持,支持组合式API,业务聚焦,开发效率更高;

  • 更快的编译速度,H5平台十倍加速,小程序、App加速30%以上;

  • 更好的运行性能,用户端响应更快,体验更好;

  • 更小的代码体积,瘦身30%以上,更省体积、更省流量

vue3 2020年09月正式发布,更是有很多优秀的新特性,例如 Composition 组合 API、基于 Proxy 的响应式系统、自定义渲染器等。可以说很好地拥抱了未来,并在新⼿友好度上做到了极致,为开发人员提供了更多的控制。虽然vue2的学习资料和项目经验较多,但随着vue3成为vue的默认版本,越来越多的企业将来肯定会升级到Vue3.0,这是趋势。所以对于新项目而言,使用vue3是最好的建议。


http://chatgpt.dhexx.cn/article/8MmFVrkp.shtml

相关文章

微信小程序 微信小程序框架API

完整微信小程序(Java后端) 技术贴目录清单页面&#xff08;必看&#xff09; 微信小程序框架所提供的API接口也是相当完备的,如果说小程序组件是用来构建小程序的视图层,那么小程序API则在小程序逻辑层担当重任。随着小程序版本的更新迭代,目前小程序框架 API分类已经达到了19…

微信小程序框架(一)-全面详解(学习总结---从入门到深化)

目录 小程序与普通网页开发的区别 体验小程序 微信小程序账号申请 微信小程序开发者工具 下载安装 创建项目 开发者工具说明 小程序目录结构 描述整体的 app 描述各自页面的 page 全局配置_Pages Pages配置 entryPagePath 快捷生成页面方案 全局配置_window 常用属性…

微信小程序学习笔记(二)-- 开发之框架

一、小程序框架介绍&#xff08;了解&#xff09; 小程序框架包含小程序的配置、框架接口、场景值、WXML 和 WXS 等 二、小程序的配置&#xff08;精通&#xff09; 小程序的配置分为全局配置、页面配置以及sitemap 配置 1、全局配置 小程序根目录下的 app.json 文件用来对…

微信小程序框架

框架 小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务。 整个小程序框架系统分为两部分&#xff1a;逻辑层&#xff08;App Service&#xff09;和 视图层&#xff08;View&#xff09;。小程序提供了自己的视图层描述语言…

【微信小程序】小程序框架分析

1.MVC MVC是Model-View- Controller的简写,即模型-视图-控制器&#xff0c;简单来说就是通过controller的控制去操作model层的数据&#xff0c;并且返回给view层展示。 当用户出发事件的时候&#xff0c;view层会发送指令到controller层&#xff0c;接着controller去通知mode…

微信小程序常见的UI框架/组件库总结

图片 想要开发出一套高质量的小程序&#xff0c;运用框架&#xff0c;组件库是省时省力省心必不可少一部分&#xff0c;随着小程序日渐火爆&#xff0c;各种不同类型的小程序也渐渐更新&#xff0c;其中不乏一些优秀好用的框架/组件库。 1&#xff1a;WeUI 小程序–使用教程 ht…

强烈推荐:小程序常用的6款框架总结

随着前端的知识不断更新&#xff0c;小程序也成为了我们开发中的日常。微信小程序、百度小程序、支付宝小程序、头条小程序等等不断涌入我们的生活&#xff0c;随着小程序的火爆&#xff0c;各种小程序框架不断出现&#xff0c;也在不断更新。路漫漫&#xff0c;学不完呀&#…

微信小程序框架介绍以及项目目录结构

完整微信小程序(Java后端) 技术贴目录清单页面&#xff08;必看&#xff09; 微信小程序框架介绍 微信团队为小程序提供的框架命名为MINA。MINA框架通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能&#xff0c;对上层提供一整套JavaScript API&am…

爬虫入门

爬虫入门 1. 概述 本文首先介绍Requests库如何自动爬取HTML页面以及如何自动网络请求提交&#xff0c;随后将会讲解如何阅读网络爬虫排除标准。获取了网页之后用BeautifulSoup库解析HTML页面&#xff0c;然后讲解正则表达式&#xff0c;以及如何用正则表达式提取网页关键信…

一个简单爬虫的入门教程

前言 我毕业论文要写文本大数据情绪分析&#xff0c;没有现成的数据。淘宝要价600块我又舍不得&#xff0c;只能自学爬虫。我一点计算机网络的基础都没有&#xff0c;光是入门就花了一周&#xff08;不知道从何下手&#xff09;&#xff0c;所幸爬虫不难&#xff0c;只要见过就…

python爬虫入门教程:开始一个简单的爬虫

本文下面所有的Python基础都有详细的配套教程以及源码&#xff0c;都已经打包好上传到百度云了&#xff0c;链接在文章结尾处&#xff01; 扫码此处领取大家自行获取即可~~~ 1.爬虫的过程分析 当人类去访问一个网页时&#xff0c;是如何进行的&#xff1f;   ①打开浏览器&…

从原理到实战,一份详实的 Scrapy 爬虫教程

之前分享了很多 requests 、selenium 的 Python 爬虫文章&#xff0c;本文将从原理到实战带领大家入门另一个强大的框架 Scrapy。如果对Scrapy感兴趣的话&#xff0c;不妨跟随本文动手做一遍&#xff01; 一、Scrapy框架简介 Scrapy是:由Python语言开发的一个快速、高层次的屏幕…

超级简单的Python爬虫教程,python爬虫菜鸟教程官网

毫无基础的人如何入门 Python ? Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言&#xff0c;比如非常难学的C语言&#xff0c;非常流行的Java语言&#xff0c;适合初学者的Basic语言&#xff0c;适合网页编程的JavaScript语言等等。 那Python是一种…

爬虫教程(1)基础入门

爬虫介绍 网络爬虫&#xff0c;英译为 web crawler &#xff0c;是一种自动化程序&#xff0c;现在我们很幸运&#xff0c;生处互联网时代&#xff0c;有大量的信息在网络上都可以查得到&#xff0c;但是有时我们需要网络上的数据&#xff0c;活着文章&#xff0c;图片等等&…

爬虫的简单入门

本文旨在教会读者能够简单使用两种爬虫&#xff0c;完成一些基础的爬虫操作&#xff0c;会给出一些优化思路&#xff0c;并不会深入的讲解优化方法。 目录 前言 一、爬虫部分——网页源码获取 1、Requests 2、Selenium 二、数据处理——解析网页 BeautifulSoup 三、成功入门之后…

网页爬虫教程

转自https://morvanzhou.github.io/tutorials/data-manipulation/scraping/ 了解网页结构 学习爬虫, 首先要懂的是网页. 支撑起各种光鲜亮丽的网页的不是别的, 全都是一些代码. 这种代码我们称之为 HTML, HTML 是一种浏览器(Chrome, Safari, IE, Firefox等)看得懂的语言, 浏览…

一个简单的爬虫入门教程!

前言 我毕业论文要写文本大数据情绪分析&#xff0c;没有现成的数据。淘宝要价600块我又舍不得&#xff0c;只能自学爬虫。我一点计算机网络的基础都没有&#xff0c;光是入门就花了一周&#xff08;不知道从何下手&#xff09;&#xff0c;所幸爬虫不难&#xff0c;只要见过就…

【爬虫教程】吐血整理,最详细的爬虫入门教程~

初识爬虫 学习爬虫之前&#xff0c;我们首先得了解什么是爬虫。 来自于百度百科的解释&#xff1a; 网络爬虫&#xff08;又称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追逐者&#xff09;&#xff0c;是一种按照一定的规则&a…

爬虫教程( 1 ) --- 初级、基础、实践

爬虫教程&#xff1a;https://piaosanlang.gitbooks.io/spiders/content/ 1. 爬虫入门 初级篇 IDE 选择&#xff1a; PyCharm (推荐) 、SublimeText3、Visual Studio Python 版本&#xff1a;Python3。&#xff08; 最简单的是直接安装 Anaconda&#xff0c;使用 Anaconda 管理…

python 爬虫 简单爬虫教程(requests + selenium )

最近改了实验室之前的爬虫&#xff0c;感觉有些生疏了&#xff0c;故此记录一下&#xff0c; 我将会通过抓取网站 https://nonfungible.com/ 来进行讲解。 目录 requests Chrome 浏览器使用Chrome 对目标网站信息进行解析requests get 请求requests 添加头requests ip代理 使用…