开发微信小程序的框架如何选择?

微信小程序从面世以来,受到众多前端开发者的热爱。与此同时,不断的有各个团队在原生框架基础上做出了众多的开发框架。

其中的佼佼者或者相对出名的有Wepy、MPVue、Taro。

这三个框架呈三足鼎立的状态,同时还有很多后来者也涌现出来。

对于层出不穷的框架,开发者挑选的主要理由不外乎:

维护团队

开发并维护框架需要有强大的技术能力,虽然有很多出色的个人开发者也推出自己的框架,但在绝大多数我们还是应该认准大品牌。

Wepy来自腾讯,MPVue来自美团,Taro来自京东,这些公司背后有大量的高端技术人员来完成框架级的设计,它们推出框架的理由通常也是将内部实践的成熟方案开源给开发者(虽然肯定有为更长远的利益着想)。

功能

相比原生微信小程序的开发,各个框架都有相应的杀手锏解决了原生小程序开发中的一些痛点。譬如Wepy和MpVue的类Vue语法,Taro的类React语法和多端开发能力,其他如状态管理、封装能力、包管理等等都带来了一些开发中更好的体验。

社区和用户

在开发者选择轮子的时候,很多人都会考虑的是开发者的社区繁荣程度和使用的用户数量。因为当用户足够庞大时,就可以做到“什么bug都有人提问并解答”。相对于使用一些生僻的轮子免不了需要自己去填坑,肯定是百度一下就知道答案能带来更酸爽的体验感。提到的三款小程序框架就可以说占据了目前市场上绝大多数的用户。


如果仅仅是这三个理由,我想这三者可以说伯仲之间,但是将问题聚焦到小程序开发上,我最推荐的是来自京东的Taro框架。

与其他大多数解决方案,尤其是后端相对成熟稳定的框架和轮子不一样的是,微信小程序还只是一个孩子。微信小程序到现在也仅仅推出了两年出头的时间,即便是原生小程序框架也是处于快速迭代更新的状态。

这意味着,虽然提到的三个特质这几款小程序框架都有解决了一定的需求,但选择Taro最重要的理由是它的更新速度。

熟悉微信小程序的开发者,尤其像我从小程序一开始面世第一时间就接触并实践的开发者都知道,微信小程序的团队对于原生框架的维护和迭代是相当的频繁,这是个不断的将微信小程序这个产品做得越来越完善的过程(虽然很多开发者并不同意)。

在这样的前提下,基于原生微信小程序衍生出来的框架很重要的工作除了帮助开发者提高开发效率和开发体验,还需要跟进原生小程序的迭代。

微信小程序经常会更新推出新的API,也会废弃一些使用很久的API,所以对于框架的维护团队来说很重要的一个工作便是,要跟进原生小程序框架的迭代来做好框架的升级。

我们来看一下各个衍生框架的commit的速度:(截止2019-3-10)

MPVue:2300多次

Wepy:1600多次

Taro:3600多次

尤其要提的是,相比于MPVue和Wepy,Taro面世的时间晚了半年以上,在更晚推出的前提下缺有更高的commit数,可见Taro的维护团队效率速度都更快。更不用说前两个框架据我观察在去年6月份到10月份基本不更新。

可以看出来,Taro框架的维护团队从面世以来就保证了极高的commit提交,反之其他两个重要框架都已经停滞不予维护。

我曾经遇到的一个例子是:我最早使用Wepy框架开发过一个用到视频组件的页面时,遇到一个问题怎么debug都解决不了,曾一度怀疑是我自己的问题。之后用原生框架发现并不会有同样问题,于是提交issue给wepy框架团队,过了好一阵收到了维护团队的回复:他们已经确认bug来自于原生小程序已经修复的一个bug。

如果框架的更新速度慢,便会发现会不断的出现如此这般的问题。碰到这样的问题,对于开发者很是头疼,一方面已经使用框架开发到一定阶段,不能解决意味着要么等待框架的维护团队修复,要么重新更换框架或使用干脆原生框架。

所以Taro团队符合互联网产品的“敏捷开发、快速迭代”的思维值得大赞。

虽然实际上我做的绝大多数产品还是更倾向于使用原生框架,是因为一方面是有历史遗留,更换成本代价比较高。要么是对于中小项目,也带来不了多高的效率。

但在一些新的项目,特别是在做一些外包项目时,我优先考虑使用Taro来开发,来获得最高的单位时间收益,这便是开发框架带来的优势。