关注我们
成都多享科技二维码图片

成都多享科技有限公司

Chengdu DuoXiang Technology co., LTD

首页 > 小程序教程 > 原生微信小程序开发与第三方框架性能对比

原生微信小程序开发与第三方框架性能对比

2019-06-26

原生微信小程序开发与第三方框架性能对比。微信小程序历经2年多的迭代升级,已有数百万小程序上线,成为继 Web、iOS、Android 之后,第四大主流开发技术。与之相随,小程序的开发生态也在蓬勃发展,从最初的微信原生开发,到wepy、mpvue、taro、uni-app等框架依次出现,从刀耕火种演进为现代化开发,生态越来越丰富。
小程序开发
选择多了,问题也就来了,开发小程序,该用原生还是选择三方框架?
首先,微信原生开发的槽点大多集中如下:
原生开发对 Node、预编译器、webpack 支持不好,影响开发效率和工程构建流程。微信定义了一个不伦不类的语法,不如正经学 vue、react,学会了全端通用,而不是只为微信小程序vue/react 生态里有太多周边工具,可以提高开发效率,比如 ide、校验器、三方库。微信 ide 和专业编辑器相比存在一些缺点和劣势。同时,开发者对三方框架,又总是有各种顾虑:怕性能不如原生。怕有些功能框架实现不了,只能用原生。怕框架不稳定,跳到坑里。以及诸多三方框架,到底该用哪个。
面对如此纠结的场景,不少热心开发者发布评测文章分享经验,但感觉众说纷纭,过期信息太多。缺少一份非常专业的、深度的,或者按如今流行的话来讲,“硬核的”评测报告。做评测报告这件事,不同于泛泛经验分享,其实非常花费时间。它需要:你必须成为每一个框架的专业使用人员,而不是浅浅的了解一下这些框架。真实的动手写多个平台的测试例,比较各个平台的功能、性能,了解他们的社区情况、技术服务情况。你要有长期跟踪和更新报告的能力,避免半年后沦为过期信息。换言之:评测要想真,功夫得做深!uni-app团队花费 2 个周时间完成本报告,并坚持每个季度更新一次本评测报告。目前更新时间为 2019 年 5 月。
本文从面向用户、面向开发者两大维度七大细项,对微信原生及主流的wepy、mpvue、taro、uni-app开发框架进行横向对比,希望给开发者在小程序框架选型时提供一种参考思路。本文基于各框架官网可采集到的公开数据及真实测试数据,希望客观公正地评价各个框架的现状和优劣。但宥于利益相关,本文的观点很可能是带有偏向性的,大家可以带着批判的眼光来看待,如发现本文中有任何评测失真。面向用户、面向开发者维度,具体包括:1、用户:提供完整的业务实现,并保证高性能体验。2、开发者:平缓的学习曲线、现代开发体验(工程化)、高效的社区支持、活跃的开发迭代、多端复用。
1、用户功能实现
软件开发,首要目标是向用户提供完整、闭环的业务功能。在 web 开发中,如果 vue、react 等框架的使用,造成开发者无法操作浏览器提供的所有 api,那这样的框架肯定是不成熟的。小程序开发也一样,任何开发框架,都不能限制底层的 api 调用。而各种业务功能底层依赖微信暴漏的组件和接口(微信官网介绍的组件和 API 规范, 也即微信原生 API),三方框架是基于微信原生进行的二次封装,开发者此时常会有个疑问:小程序在不断的迭代升级,如果某项业务依赖于最新的小程序 API,但三方框架尚未封装,该怎么办?
实际上就像 web 开发的 vue、react 一样,浏览器出了一个新 API,并不会涉及 vue、react 的升级。本评测里的所有框架,都不会限制开发者调用底层能力。这里详细解释下原因:
wepy:未对小程序 API 作二次封装,API 依然使用微信原生的,框架与微信小程序是否新增 API 无关。
mpvue:支持微信的所有原生组件和 api,无限制。同时框架封装了自己的跨端 API,使用方式类似mpvue.request()。
taro:支持微信的所有原生组件和 api,无限制。同时框架封装了自己的跨端 API,使用方式类似Taro.request(),支持 Taro 代码与小程序代码混写(详见下面的链接),可通过混写的方式调用框架尚未封装的小程序新增 API。
uni-app:支持微信的所有原生组件和 api,无限制。在跨端方面,即便仍然使用微信原生的组件和 API,也可以直接跨端编译到 App、H5、以及支付宝百度头条等小程序。但为了管理清晰,推荐使用 uni 封装的 API,类似uni.request()。同时支持条件编译(详见下面的链接),可在条件编译代码块中,随意调用各个平台新增的 API 及组件。
注:以上顺序,按各个框架的诞生顺序排序,下同。
故,三方框架均可调用所有小程序 API,完成用户的业务需求,这个维度各框架是无差别的。然而有差别的,是性能体验。
2、开发者
在满足用户业务需求的前提下,我们谈谈开发者的需求,从如下几个维度比较:
平缓的学习曲线:简单易学,最好能复用现有技术栈,丰富的学习资料。
高效的开发体验:现代前端开发流程、工程化支持。
高效的社区支持:遇到问题,可很快的寻求到帮助。
活跃的开发迭代:框架处于积极更新升级状态,无需担心停更。
Copyright 2014 duoxiang.net, All Rights Reserved 版权所有 蜀ICP备10020808号成都多享科技有限公司网站地图

电话:18980476739邮箱:dx@duoxiang.net

地址:成都市高新区天府二街蜀都中心2栋5F


版权所有 蜀ICP备10020808 -1