React Navtive 的思考

前言
React Native是facebook前端工程师基于自身开发React上开发的一套用于移动端开发的一个前端框架,想必大家目前都或多或少了解过它,在此就不再赘述,那么作为一个移动端是否应该学习一下它(尽管有一些人对这个东西不那么感冒)。

    React Native已经出来两年多了,但是刚问世的一年内并没有像现在铺天盖地的都是关于它的内容,就是现在处于第二次互联网浪潮即将收尾的时候,它的关注度反而是直线上升?对于这种程度的理解,对于进入移动开发三年以上的人来说,有的人(甚至大多数人)会认为,这不就是以前HTML5刚出来时候的那种么?!也就是火这么一段时间,移动端开发一定会摒弃的。但是,仔细想想目前很少有大型的应用去使用它,不像当年HTML5出来的时候,就连facebook把应用都做成了整体H5的,最后的结果是悲剧的,但是造就了一群世界上顶级的前端专家,使前端的技术大跃进式发展(好像有点儿扯远了)。但是在各大应用都不去用它的情况下,为什么我们还要去研究它?
  • 成本以及效率上考虑
    这个对于公司来讲,如果可行度非常高,那么一个公司就不需要两个端上去上那么多人,几个前端就可以搞定(可行度高以后对于前端以及手机端程序员的水平也会增加),而且业务更新上也不用一个APK一个APK的上(虽然现在也有热补丁,下次介绍一下热修复的技术以及几种好用的热修复框架),稳定程度上和原生开发一样,公司开支变小,业务成本变少,用户体验变好,怎么说也是完美的方案。

  • 技术上的发展
    React Native比一些webApp框架以及Hybrid框架的差别是在哪里?!不知道一些见风使舵的人仔细去研究过没有。大白话说一下,React Native是映射的Android/Ios的原生组件,简单用android来举个例子:
    {"title":"linearlayout","middle":"relativelayout","bottom":"framelayout"}

        用这么一个Json字符串作为一个表层(React Native用JS描述,在此Json、XML或者自定义格式是一样的数据),映射到Android本地的就是title表示一个linearlayout,middle表示一个relativelayout,bottom表示一个framelayout。
    
       如果从架构的角度来看这个JSON还可以这么理解:上面的titleBar用一个本地封装的一个linearlayout的组件,中间内容用的封装好的relativelayout组件,底部用的是本地封装好的一个framelayout组件,如果本地把组件都封装好,服务端可以直接返回一个这么的数据,动态的调整布局以及加载不同的布局,如果本地再加上一个事件中心(EventBus实现原理可以看一下),做一个根据事件的层级做一个事件的分发,就可以根据事件的来源不同显示不同的布局。
       如果对动态化有研究的童鞋,应该对ReactNative有一个更深的理解。
    
  • React Native的缺点

      React Native有什么缺点呢?造成目前很少知名的应用去用它,包括facebook自身都没有采用。我自己谈一下用过(Android)的感受:
      1)列表映射的Android的SrollView而不是ListView,没有复用机制,列表过多的时候造成OOM,这一点也是阿里的相似的weex团队抓住这一点儿,对React Native抨击。
      2)相对于原生开发来说,内存消耗有点儿大,页面跳转有时候不会那么流畅。
      3)里面还有一些预留的坑,并没有踩完,应用级开发要慎重
    
    总结
     说一下自己的看法,可以将应用中不重要的以及H5页面(在公司没有一个好的浏览器内核的情况下,React Native方案可比H5的内存消耗小多了,交互也好多了)通过React Native方案替换(如果没有一套可行的自身的动态化方案),整体开发用React Native现阶段不推荐。
    
  • -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值