小程序的开发方式选择
1. 原生开发与第三方框架
什么是原生开发方式?这个概念其实挺难用文字去准确界定的,因为官方也没有对原生开发方式作出定义。这个概念其实也是不言而喻的,我们按照小程序官方文档中的描述去开发小程序就属于原生开发的方式。
其实不需要去定义什么是“原生开发”,我们只需要去了解一些第三方小程序框架后就明白原生开发的概念了。出现众多第三方框架的原因主要有一下几点:
- 小程序的原生开发方式有一些小小的缺点:比如不能直接使用LESS/SASS、没有官方的过滤器支持(但过滤器可以使用小程序的wxs来实现)、没有状态管理、不支持双向数据绑定、目前不支持Asncy/Await等问题。这些缺点让习惯了现代化前端开发理念的开发者不太舒服
- 现在的小程序其实并不单单只有微信小程序,还有支付宝、百度等小程序。如果一个产品需要同时开发微信、支付宝、百度三个版本的小程序,理论上我们需要写3份代码调用三个不同平台的小程序API。可不可以写一份代码,让这一份代码可以在三个不同的小程序平台上运行?
- 一些开发者希望使用Vue、React等成熟的框架来开发小程序
基于以上几点需求,第三方框架便应用而生了。目前比较知名的几个第三方框架分别是:
- wepy 腾讯团队开源的一款类Vue小程序开发框架
- mpvue 美团出品。特点是使用Vue开发小程序,支持微信小程序、百度智能小程序、头条小程序和支付宝小程序
- Taro 京东凹凸实验室开源的一款小程序框架。特点是使用React生态开发小程序,理论上来说可以编写一套代码,通过编译的方式将源代码编译成可以在不同端(微信/百度/支付宝/字节跳动小程序、H5、React-Native 等)运行的代码
- Mpx 滴滴出品。可以使用Vue来编写小程序,目前可以支持微信小程序和支付宝小程序的开发
如果算上小程序原生开发,开发者目前有5种开发方案可以选择。很难选择。
2. 开发方式总结
第三方框架似乎编写一份代码就可以同时运行在多个小程序平台上,但这其实只是一种看似的美好。一份代码编译运行在多端平台上并不是像我们所想的这么简单,编译过后依然需要开发者手动去针对不同平台调整部分代码。再者,不同平台的小程序更新速度很快,很多新的功能、组件第三方框架是不能够很快支持的。
还有一点要提醒开发者,使用第三方框架依然需要非常了解原生小程序,并不是说使用第三方框架就不需要学习原生小程序了。这极高的学习成本是否要付出,确实需要我们仔细思考下。
笔者认为技术的推层出新必须是以减少开发成本和提高开发者开发效率为目的。如果使用第三方框架不能提高你的效率、节约你的时间,那为什么要付出更多的学习成本来学习和使用第三方框架呢。
最后,微信小程序正处于高速发展的时期,越来越丰富的功能将很快弥补现在的缺陷。很多第三方框架所宣传的亮点诸如组件化开发、npm支持、可以使用promise等等这些问题,现在版本的小程序已经全部支持和解决。那剩下的缺陷未来就不会解决吗?
跟着官方走永远是最省心的一种方案。微信小程序当初没有选择依托Vue/React/AngularJS三大框架作为小程序的开发基础,而是自己做了一套开发模式和运行机制,就足以证明微信是希望有自己的一套运行机制和开发规范的。微信原生开发会借鉴三大框架的优点,但他不会以这些框架为基础,因为这样会让小程序的发展缺乏自主性。