Weex 、ReactNative 都是为解决App 不能及时更新、开发成本高这2个问题,而提出的解决方案。两方案解决思路基本类似,但 各自方案侧重点不同
开发模板
-
-
Weex使用开源的Vue.JS,使得其DSL模板直接使用Html、CSS、JavaScript语法,学习简单,可以直接使用现有的编辑器工具开发,尤其对于前端人员来说,能够直接上手使用;
-
React Native 使用React模板,采用JSX语法,既在 JavaScript 代码里写着 XML 格式的代码,并且采用了CSS in JS,无形中提高了开发人员的学习成本;
-
跨平台开发
虽然Weex和React Native都支持跨平台开发,但实际还是有一定的区别。
-
-
Weex的目标是实现代码共用,一次开发多平台运行,能同时支持IOS、Android和Web,降低了开发难度,节约开发成本;
-
React Native则希望替换整个APP,所以更加注重平台的独立性,其代码需要针对IOS和Android平台编写,代码无法实现完全公用,从官方提供的组件也可以很明显的看出,
-
例如 ProgressBarAndroid、ProgressViewIOS等;
-
社区支持
-
-
Weex开源较晚,互联网上相关资料还比较少,社区规模较小;
-
React Native社区则比较活跃,可以参考的项目和资料也比较丰富;
-
总结:
从上面几点来看,对于新手来说,Weex相比React Native入门更加简单,熟悉常规Web开发的人员更能快速上手,并且能实现多平台代码共用,
但React Native相对比较成熟,有更多的案例和相关解决方法,社区相应比Weex活跃
Weex 目标 编写一次页面,三端运行(仅限于页面绘制),RN 提供一整套APP 方案,可以适配Android & iOS
从使用者角度,比较两种优秀框架,如下:
对比项
|
WEEX
|
RN
|
---|---|---|
文档完整性 | 一般 | 良好 |
框架成熟度 | 一般 | 良好(也有很多坑) |
内置组件和模块 | 一般 | 多 |
扩展能力 | 强 | 强 |
双向通信能力 | 一般 | 一般 |
学习成本 | 易 | 难(门槛高,学习成本大) |
适用场景 | 动态化页面(专注于页面) | 重构APP实现方式 |
HTML5支持能力 | 部分 | 不支持(独立一套标准) |
设备适配 | 一般 | 一般 |
部署难易 | 易 | 易 |
社区支持 | 弱 | 强 |
页面效率和性能 | 高 | 一般(长页面效率更差) |
参考资料:
http://blog.youkuaiyun.com/aptentity/article/details/68488585
https://zhuanlan.zhihu.com/p/21677103