ReactNative从开源以来就受到国内各大互联网公司的关注,阿里巴巴在应用ReactNative的同时,也推出了自己的Weex方案。
同时在网络上可以看到一些文章,携程、去哪儿也都在ReactNative的基础上开发了自己的ReactNative平台框架。
在这里对比一下去哪儿、携程、以及内部的ReactNative框架还有Weex框架。
其实个人认为RN还有Weex的最大优点一是代码可以在IOS、Android平台公用(其实以公司维护以及开发的学习成本来说,这个优点并不明显),另外最大的亮点是可以热更新,也就是不依赖发版。
更新的方案设计是非常重要的,阿里巴巴的Weex应该是通过推拉结合,技术实现较复杂;去哪儿是差分更新,维护性较差;Moles是按需加载,比较简单;而我认为最优的升级方案是
1.按需加载,通过类似WebView加载升级的方式实现,去除版本概念,通过客户端请求版本时加入随机哈希来实现版本比对,下载;
2.按需加载后,如果线上hash和本地hash一致,则使用本地缓存,“一次加载、多次可用”;
3.必须要监控升级下载成功率!因为客户端升级过程是黑盒,开发者很难知道用户究竟本次下载是否成功,所以建议在下载过程中加入埋点,进行全链路监控。
框架 |
引擎 |
三端支持 |
调试难度 |
升级方式 |
业务使用广泛性 |
组件Api支持 |
|
内部React |
中 |
强制、非强制 |
中 |
有 |
|||
QunarReact |
中 |
差分更新 |
高 |
有 |
|||
Moles |
NA |
中 |
按需加载 |
中 |
有 |
||
Weex |
V8 |
低 |
推拉结合 |
高 |
好 |
框架 |
ListView优化 |
智能埋点 |
图标字体支持 |
拆分包支持 |
离线资源包支持 |
开源 |
|
内部React |
无 |
无 |
无 |
NA |
无 |
||
QunarReact |
有 |
部分开源 |
NA |
||||
Moles |
NA |
无 |
NA |
部分开源 |
NA |
||
Weex |
有 |
NA |
NA |
开源 |