继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

React Native的好处和应用

nickcau
关注TA
已关注
手记 114
粉丝 6509
获赞 303

很多公司开发安卓和ios都用原生 Native 代码,不同平台代码没有交集。但是对于产品同样一个需求,需要两个team来实现成本比较高,而且需要比较大的测试资源,还有就是功能上线下线麻烦,热更新技术有局限性。

h5-web

Android和ios中的web-h5技术可以通过内嵌页、外链页达到多端统一,客户端实现手段:webview+URL,但是web-h5技术内存占用大,cpu占用高,有不少bug,用户体验一般,webview对于js dom的渲染能力差。所以这种技术只能解决部分痛点,并且没能达到我们想要的效果。我们想要的是在用户体验一致的前提下完全解放客户端开发,满足产品想要的东西

React Native

React,是由Facebook于2013年推出的一个JS开发框架。原因是Facebook的前端技术人员觉得市面上的所有JS框架都很垃圾,所以就自己发明了一套,结果发现意外的好用,然后就开源了。
由于React的设计思想在当时过于超前,性能出众,组合自由,语言设计和逻辑设计又十分简单,能大大减少前端开发的时间。所以得到了越来越多的人的关注和使用,成为了主流WEB开发框架之一。
随着越来越多的功能和生态的加入,React慢慢成为了前后端通吃的WEB解决方案,并且社区繁荣,使用之广。2015年,Facebook突然觉得React可以作为客户端UI开发框架,因此发布了React Native。
RN是由Facebook于2015年发布的,他是React的Native版本,旨在通过JS来开发客户端界面和逻辑,节省成本和时间,达到一个代码,多端通用的目的,经过2年的发展,RN的性能得到大幅提升,目前已经能与原生媲美,社区繁荣。

React Native好处

  • 一行代码,多端运行。
  • Learn once,write anywhere.
  • 我们认为RN是MVC结构中的V,少量C和M。

React Native实现

底层通过C++统一实现,对外封装Java、Objective-C,对内封装JS,通过JSBridge实现JS-native的通信,实现线程模型等。自己的绘制线程UIThread以及Application管理体系

JS通过映射module的方式来构建原生View,并将view组合携带数据attach到ReactView,ReactView再被添加到具体Activity中,通过JSBridge与JS通信,所以生命周期对应Activity,一个View是一个JSApplication。
因为是映射,所以RN的view效果和原生一致,性能也一致,那这样为什么还说是媲美,因为RN加载需要读取bundle,这步会因为构建整个RN体系而导致速度偏慢,但是加载后所以操作都是组件操作。
只支持基础类型
double、boolean、String等。Map、List。(Writeable以及Readable)JS操作为Map操作、弱类型。

Alert.alert(
  ‘Title',
  ‘Msg',
  [
    {text: 'Cancel', onPress: () => MeetyouReact.showToast('Cancel Pressed’),
    {text: ‘OK’, onPress: () => MeetyouReact.showToast ('OK Pressed')},
  ])
renderImages() {
  return (
    <View>
      <Image
        style={width:100,height:200}
        source={{uri: 'http://facebook.github.io/react/img/logo_og.png'}}
      />
    </View>
  );
}
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP

热门评论

1234567896

๛ก(ー̀ωー́ก) 

查看全部评论