一、小程序开源开发框架介绍

1、WePY

微信小程序问世没多久,大家发现用原生小程序语法开发,开发体验和效率真的不尽如人意。WePY 此时横空出世,彼时 WePY 的目的,是让小程序开发更贴近传统 H5 框架开发,支持引入 npm 包,支持组件化开发和 ES Next 新特性。

  1. 开发模式:更符合现有 MVVM 框架的开发模式,类 Vue,节省上手成本
  2. 组件化开发:支持组件嵌套、循环、组建通信等
  3. npm 包管理:处理了 npm 包依赖问题
  4. ES Next:语法更现代,提升开发体验
  5. 细节优化: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 审核之间会有不小的冲突,比如苹果公司会严格限制小程序和小游戏的分发,不允许微信内给小程序和小游戏开放更大的入口;微信的虚拟支付也是苹果公司的重点打击对象。