名称 | React Native | Weex | Flutter | uni-app |
支持 | Alibaba | Dcloud | ||
编写方式 | 需针对iOS、Android编写2份代码(需要会Java,oc) | 只需要编写一份代码,即可运行在Web、iOS、Android上 | 只需要编写一份代码,即可运行在iOS、Android上 | vue 框架开发即可编译出 安卓 ,ios,H5,小程序跨平台 |
JS引擎 | JSCore | V8 | 未知 | APP基于Weex,小程序基于mpvue,H5基于vue框架 |
框架 | React.js组件化,数据绑定 Virtual DOM JSX模板学习使用有一定成本 | Vue.JS 组件化,数据绑定 Virtual DOM 模板就是普通的html,数据绑定使用mustache风格,样式直接使用css | 代码风格和java比较接近,个人感觉和前端标签也很像,有人说喜欢XML布局的对于Dart会比较难受 | vue |
异步 | 提供了Promise | 只支持 callback | Dart 的 Event-Queue的模型 | 提供了Promise |
扩展 | 不同平台可自由扩展 | 为了保证各平台的一致性,一次扩展得在各个平台都实现 | 可扩展 | 可扩展 |
组件 | 除了自带的,还有js.coach上社区贡献的,比较丰富 | 基本靠平台提供 | 依赖ReactiveX库 | 和weex基本一样 |
性能 | 优 | 优秀 | android 原生在内存、CPU 资源占用方面要低于 flutter,并且安装包的体积也要小于 flutter (优) | 一般 |
社区 | 非常成熟和活跃 | 开源较晚,社区处于成长期 | 活跃 | 新框架,社区处于成长期 |
上手难度 | 困难 | 容易 | 一般 | 容易 |
React Native
优点:
- 跨平台开发
- 跳过App Store审核,远程更新代码,提高迭代频率和效率,既有Native的体验,又保留React的开发效率。
缺点:
- 对于不熟悉前端开发的人员上手比较慢;
- 不能真正意义上做到跨平台;
- app包体积增大明显
H5 vue
小程序
wepy mpvue taro
-
WEPY https://tencent.github.io/wepy/document.html
腾讯团队开源的一款类vue语法规范的小程序框架,借鉴了Vue的语法风格和功能特性,支持了Vue的诸多特征,比如父子组件、组件之间的通信、computed属性计算、wathcer监听器、props传值、slot槽分发,还有很多高级的特征支持:Mixin混合、拦截器等;WePY发布的第一个版本是2016年12月份,也就是小程序刚刚推出的时候,到目前为止,WePY已经发布了52个版本, 最新版本为1.7.2;
-
MpVue http://mpvue.com/mpvue/#-html
美团团队开源的一款使用 Vue.js 开发微信小程序的前端框架。使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为 H5 和小程序提供了代码复用的能力。mpvue在发布后的几天间获得2.7k的star,上升速度飞起,截至目前为止已经有13.7k的star;
-
Taro https://taro.aotu.io/
京东凹凸实验室开源的一款使用 React.js 开发微信小程序的前端框架。它采用与 React 一致的组件化思想,组件生命周期与 React 保持一致,同时支持使用 JSX 语法,让代码具有更丰富的表现力,使用 Taro 进行开发可以获得和 React 一致的开发体验。,同时因为使用了react的原因所以除了能编译h5, 小程序外还可以编译为ReactNative;