从16年微信小程序内测到如今,各大公司对小程序的开发业务需求愈来愈大,可是开发者用原生去开发小程序很难受,尤为是业务比较复杂的项目若是用原生开发很难去管理和迭代javascript
使用原生开发的问题:css
使用框架能够解决的问题:前端
WePY (发音: /'wepi/)是一款让小程序支持组件化开发的框架,经过预编译的手段让开发者能够选择本身喜欢的开发风格去开发小程序。框架的细节优化,Promise,Async Functions的引入都是为了能让开发小程序项目变得更加简单,高效vue
mpvue 是一个使用 Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心,mpvue 修改了 Vue.js 的 runtime 和 compiler 实现,使其能够运行在小程序环境中,从而为小程序开发引入了整套 Vue.js 开发体验。java
主要特性react
Taro 是一套遵循 React 语法规范的 多端开发 解决方案webpack
uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架。web
Chameleon/kəˈmiːlɪən/,简写CML,中文名卡梅龙;中文意思变色龙,意味着就像变色龙同样能适应不一样环境的跨端总体解决方案。vue-cli
主要特性npm
框架 | 支持力度 | 语法 | star数量 | 开源时间 | 编译方式 |
---|---|---|---|---|---|
wepy | 微信小程序 | 类Vue | 18854 | 2016-11-23 | 环境变量条件编译 |
mpvue | 微信小程序、支付宝小程序、百度小程序、头条小程序 | Vue | 18605 | 2018-03-09 | 环境变量条件编译 |
taro | H五、微信小程序、支付宝小程序、百度小程序、头条小程序、React Native、快应用、QQ小程序 | React | 21740 | 2018-06-07 | 环境变量+文件编译 |
uni-app | H五、微信小程序、支付宝小程序、百度小程序、头条小程序、QQ小程序、Android版、IOS版 | Vue | 12484 | 2018-07 | 自研条件编译语法 |
chameleon | H五、微信小程序、APP端(Chameleon Playground App、Weex playground) | 类Vue系,采用CML + CMSS + JS | 6521 | 2019-02-26 | 自研多态协议 |
star数量记录于2019-09-17
wepy
优势:微信团队提供的框架,对微信小程序的支持度高,可工程化开发项目,组件和相关文档内容丰富,论坛和交流社区活跃
缺点:只支持微信小程序,支持端单一,框架自己静态编译,动态repeat时会出现比较严重的 BUG,语法解析有时会出现错误,错误处理还比较简单
mpvue
优势:开源时间最先的多端框架,网上相关的问题和例子较多,适用于工程化和组件化开发项目
缺点:开发团队基本再也不维护该框架,使用者数量愈来愈少,且框架自己存在的各类问题通过长时间的迭代依旧没有解决
taro
优势:支持端能力丰富,开发团队维护力度大,论坛和官方的问题解决速度快,自己基于微信小程序API开发,微信小程序的支持能力强大
缺点:自己是文件的静态编译,复杂代码的转换的上会产生问题,对H5和移动端的端兼容能力比较差
uni-app
优势:开发团队主推的框架,论坛和交流社区很是活跃,端的兼容能力异常强大,存在特定IDE去兼容框架代码的书写规范
缺点:部分代码未开源,官方问题反馈速度不及时,编辑器绑定
chameleon
优势:规划完整,统一的多态协议,渐进式跨端,提供了基础开发脚手架命令工具,帮助端开发者从开发、联调、测试、上线等全流程高效的完成业务开发
缺点:开源时间短,相关的资料和问题解决方法较少,端兼容能力还待完善
现有的小程序框架不少,在项目开发中选型要根据业务和项目自己的实际状况选择
若是只是兼容微信小程序,使用wepy、taro、chameleon均可以,由于这些框架的API都是基于微信小程序的,因此对微信小程序的兼容性基本和原生差很少,vue系的开发者能够选择wepy、chameleon,react系的开发者能够选用taro。固然一下开发者为了轻便的开发可使用glup作工程化以原生的进行开发,不过框架自己虽然增长了包的大小,可是框架在原生基础上会封装一下性能优化的点,如setData的重复渲染等。
不选mpvue的缘由是由于mpvue的开发团队已再也不维护,并且mpvue在兼容微信小程序的复杂业务上也存在部分问题一直没有解决。
不选uni-app的缘由只有一个,不喜欢使用HBuildX
若是是要兼容多端的话,能够根据兼容端能力的需求选择taro或者chameleon,chameleon虽然开源时间短,可是统一多态协议这个设计理念确实很不错。taro是凹凸实验室重点推广的项目,在使用过程当中能够发现论坛的反馈和交流群的恢复速度仍是很及时的,使用taro能够很好的兼容微信小程序,若是要兼容其余端须要在代码根据端进行特殊处理
小程序框架选型,不过选择什么框架,最后都会编译成小程序可识别的代码运行在微信客户端,根据业务需求选择小程序框架要搞清楚小程序原生的能力。最后不得不吐槽一下微信开发文档的粗糙,不少关键的点描述的都不是很详细