0431-80806012/15764362020

长春网站制作公司 懂您所需、做您所想
—since2009

一文看懂微信小程序开发该选用什么框架【技术
日期:2019-10-16 14:28 来源:长春鑫鼎信网络

对于开发者而言,虽然不同的开发框架之间都是大同小异的,但是也正是有这些相异之处,才使得开发者在使用框架之前,需要事先学习该框架的语法结构,代码目录结构等等。本次,鼎信将从开发者的角度对小程序目前主流的框架进行一次测评。

长春微信开发

一、框架学习曲线

 

1.1DSL语法支持度

 

首先微信原生的开发语法,既像React,又像Vue,有点不伦不类,对于开发者来说,等于又要学习一套新的语法,大幅提升了学习成本,这一直被大家所诟病。

 

其它开发框架基本都遵循React、Vue(类Vue)语法,其主要目的:复用工程师的现有技术栈,降低学习成本。此时,框架对于原框架(React/Vue)语法的支持度就是一个重要的衡量标准,如果支持度较低、和原框架语法差异较大,则开发者无异于要学习一门新的框架,成本太高。

 

实际测试中发现,各个开发框架,都没有完全实现Vue、React在web上的所有语法:

 

wepy开发风格接近于Vue.js,属于类Vue实现,相对微信原生开发算前进了一大步,但相比完整Vue语法还有较大差距,开发时需要单独学习它的规则;

 

mpvue、uni-app框架基于Vue.js核心,通过修改Vue.js的runtime和compiler,实现了在小程序端的运行。mpvue支持的Vue语法略少,uni-app则基本支持绝大多数vue语法,如filter、复杂JavaScript表达式等;

 

taro对于JSX的语法支持度,也达到了绝大多数都支持的完善程度。

 

DSL语法支持度评测结果:

 

taro,uni-app>mpvue>wepy>微信原生

 

1.2学习资料完善度

 

官方文档、问题搜索、示例demo的完备度方面:

 

微信原生:文档丰富,API搜索准确,官方有示例demo,支持官网上调起微信开发者工具,预览运行效果详见

 

wepy:文档只有2页,没有搜索,组件API等文档都直接看微信的文档。没有提供示例demo,很多配置需要靠猜。

 

mpvue:文档较少,但其概念不复杂,组件API等文档都直接看微信的文档,学习难度低。问题搜索效果一般。没有提供示例demo。

 

taro:基础文档完整,具体使用问题资源较少,问题搜索效果一般,示例demo只包含基础功能,仅发布了微信一端。

 

uni-app:基础文档和各种使用专题内容丰富,问题搜索效果较好,示例demo功能完备。

 

教学课程方面:

 

学习资料完善度评测结果:

 

微信原生>uni-app>mpvue,taro>wepy

 

二、前端开发体验

 

从开发体验来说,处于明显劣势的是微信原生开发,主要差距在于:框架开发提供了精简的代码组织微信原生开发,一个Page由4个文件构成,目录结构复杂。

 

使用框架开发的优势:

 

提供了更强大的组件化能力

 

提供了应用状态管理(类Vuex/Redux/Mobx等)

 

能灵活支持各种Sass等预处理器

 

提供完整的ESNext语法支持

 

方便自定义构建策略

 

除微信原生以为,其它小程序开发框架均支持cli模式,可以在主流前端工具中开发,且基本都带有d.ts的语法提示库。由于mpvue、uni-app、taro直接支持vue、react语法,配套的ide工具链较丰富,着色、校验、格式化完善;wepy要弱一些,有部分三方维护的vscode插件。

 

前端开发体验评测结果:

 

uni-app>taro,mpvue>wepy>微信原生

 

(如果你需要工程化能力,那就直接忘了微信原生开发吧。)

 

三、技术社区支持

 

开发者在学习和使用框架中难免遇到问题,官方能提供的技术支持和框架社区活跃度对开发者来所说是很重要的因素。下表列出各框架在技术支持和社区活跃度上的表现。

 

技术社区支持评测结果:

 

微信原生,uni-app>taro>mpvue>wepy

 

四、代码多端兼容

 

除了微信小程序,支付宝、百度、字节跳动、QQ等小程序也陆续上线,于开发者而言,迟早要面对多端开发。如下是各框架对于各端的兼容情况。

 

代码多端兼容测评结果:

 

uni-app,taro>mpvue>微信原生、wepy

 

(如果有多端发布需求,微信原生开发、wepy这两种方式可以直接排除)

 

作为一份完整的评测,鼎信提供一份总结全文总结:

 

如果你只开发微信小程序,不做多端,那么使用uni-app、taro是更优的选择,他们相当于web世界的vue和react,有了这些工具,不再需要使用原生wxml开发。如果坚持微信原生开发,需要注意手动写优化代码来控制setdata,并且注意其工程化能力非常弱。如果你的技术栈是react,那么选用taro是很明智的选择,如果你的技术栈是vue,那么可以选用uni-app作为开发框架。

x

我们能给的,远比您想象的要多

定制方案、专业设计、一对一服务

咨询可以通过以下方式