扩展篇 :开发框架及前景
一、小程序开源开发框架介绍
1、WePY
微信小程序问世没多久,大家发现用原生小程序语法开发,开发体验和效率真的不尽如人意。WePY 此时横空出世,彼时 WePY 的目的,是让小程序开发更贴近传统 H5 框架开发,支持引入 npm 包,支持组件化开发和 ES Next 新特性。
- 开发模式:更符合现有 MVVM 框架的开发模式,类 Vue,节省上手成本
- 组件化开发:支持组件嵌套、循环、组建通信等
- npm 包管理:处理了 npm 包依赖问题
- ES Next:语法更现代,提升开发体验
- 细节优化:setData 性能优化(脏检测)、事件传参、编译器支持、Mixin
正是由于 WePY 解决了原生微信小程序的开发痛点,到目前为止,WePY 也是小程序上层框架中使用方最多的。很多开发者都是基于 WePY 开发微信小程序的,微信官方后续的一些性能优化和特性支持也有 WePY 的影子。
wepy-cli 的周下载量月度平均都维持在 1000 以上,远远领先于同类 cli 工具,star 数 12k+,也正如官网所说,是最受欢迎的小程序框架。使用 WePY 框架的接入,更是达到了上千家。
2、mpvue
随着小程序接入量的猛增,业界也在不断地对小程序开发体验进行尝试。2018 年 3 月,美团点评发布了一个名叫 mpvue 的小程序框架。mpvue 是一套定位于开发小程序的前端开发框架,其核心目标是提高开发效率,增强开发体验。
mpvue 是基于 Vue 的 Runtime(Vue Runtime 除了我们知道的 Web 平台之外,还有 Weex),相比 WePY,mpvue 的语法更接近 Vue 语法,对于有 Vue 基础的童鞋,可以无缝切换到小程序的开发,省下了学习小程序语法的时间。
3、Taro
Taro 是 2018 年 6 月,由京东凹凸实验室出品的一款号称多端统一的框架。这里的端,指的是 Web、App(React Native、Weex)、小程序。Taro 主打「一次编写,多端运行」,是继 WePY 和 mpvue 之后,在多平台上做到了更彻底的一款框架。
4、小程序开发框架总结
微信小程序诞生之初,定位是简单的逻辑视图层框架,所以不带有数据流管理。经常看到一些小程序开发者,通过手工引入 Redux,去做数据流管理。上面的三款框架,都是支持数据流管理的。它们总体的特性与不同,可以参见下面的表格。
副本文件 -- 不用看,不用看↓
| 特性 | 语法规范 | 模板系统 | 组件化 |样式规范 | 多端复用 | 自动构建|上手成本 | 数据流管理|
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 微信小程序 |小程序规范 |字符串模板 |不太 OK 的小程序组件化 |WXSS |无 |无|全新学习|不支持|
| mpvue | Vue.js 规范 |字符串模板 | Vue.js 组件化规范|Sass、Less、PostCSS |复用 H5 |webpack 构建|熟悉 Vue.js|Vuex|
| WePY | 类 Vue.js 规范 | 字符串模板 |自定义组件化规范 | Sass、Less、Stylus| 复用 H5|内建构建系统|熟悉 Vue.js|Redux|
|Taro | React 规范 | JSX |React 组件化规范 |Sass、Less、PostCSS |复用 H5 & 通过 RN 支持移动端 |内建构建系统 + webpack|熟悉 React|Redux|
副本文件 -- 不用看,不用看↑
最后补充一句:任何解决方案都是在其特定使用场景下诞生的,并没有「放之四海而皆准」的方案。虽然引入新方案有时是为了解决语法、开发成本之类的问题,但可能同时又产生新的坑,因此如果是新手要做复杂的小程序项目,建议使用小程序自带的解决方案;如果是某个解决方案的熟手,可以考虑在大型小程序项目中选择自己顺手的解决方案。
二、小程序前景分析
微信小程序其实已经抓住了一个用户痛点:我们安装的 N 多 App,其实一周甚至一个月都不会打开一次,这类 App 适合做成小程序,做到真正的「用完即走」。当然微信本身不可能只是这么「肤浅」,小程序实际是微信生态的重要一环,商家服务在小程序内可以完成闭环体验,小程序为其提供更好的用户体验。另外,现在制作 App 的成本越来越低,而 App 中的内容又更加封闭,不好做索引,微信这类超级 App 会变成导流工具,大家看重的是微信的入口,而最终目的是脱离微信,将用户导流到自己的 App 内。微信小程序也可以打破这个局面,将用户留在微信。
下面说下微信的技术前景。微信小程序是一套近乎完美的 Hybrid 解决方案,从开发流程到生态建设,小程序开发者都做了设计和布局,但是小程序只是微信的小程序(某些 App 自己的小程序,比如百度智能小程序、支付宝小程序),这些解决方案是围绕一个 App 而设计的,相对于 PWA(渐进式 Web 应用)这类标准的推进,封闭的解决方案必然会受到挑战。笔者认为,随着标准的成熟、浏览器的跟进、硬件和网络的提升,行业标准的解决方案才是未来方向。而且小程序这个封闭的解决方案,运行在更大的封闭系统内,本身就具有争议性,小程序发展肯定会受限于苹果公司 iOS 审核规定,未来小程序和苹果 iOS 审核之间会有不小的冲突,比如苹果公司会严格限制小程序和小游戏的分发,不允许微信内给小程序和小游戏开放更大的入口;微信的虚拟支付也是苹果公司的重点打击对象。