对于大多数APP开发者来说,能够同时开发出Android APP和IOS APP是不是很牛逼,可是它也不是天方夜谭,自从有了一个叫React Native的东西的出现,这一切就变得可以实现了。

  那么到底什么是React Native,它在程序开发中又扮演着什么角色呢?下面大家就跟着小编来一起揭开它的神秘面纱?

  React Native 是由Facebook发布的开源框架,它的宣传语是“Learn once,write anywhere”,似乎是在标榜着React Native在手,在编程的世界里走遍天下都不怕,这消息一发出,就在开发人员内部掀起了一阵小高潮,一些人员感激涕零的表示:跨平台呀跨平台,这简直就是开发者的福音啊,另一些人员则表示:任何宣传一技在手,走遍天下的技术都是纸老虎,没有办法走到最后。那么,为什么在开发人员中会出现这两种截然不同的反应呢?

  目前,一个成熟的互联网产品一般都有PC端和移动端两个产品,那么在开发这两个产品的时候,技术开发人员主要承担三个部分的角色:一是前端开发,主要用来做网站的页面设计和美化的部分,他们主要涉及到的技术开发语言包括HTML、css、Js等基础的Web语言,二是移动终端开发,现在市面上主流的系统就是安卓系统和IOS系统,其中安卓系统主要使用Java,IOS主要使用Objective-c,三是后台开发,主要是给产品提供数据和服务的稳定性,这方面的开发基本不怎么涉及界面,开发语言也是仁者见仁智者见智,有的使用Java,也有使用C++等等。这三类开发人员各司其职,互相配合,共同开发产品。

  那么,我们可以从一个互联网产品的开发模式中看出,一个计算机开发语言是没有办法独立完成一个产品,它需要开发人员掌握各种技术并且娴熟运用,而开发人员的精力是有限的,所以一个“Learn once,write anywhere”的语言对于他们来说是迫切需要的,所以大家,就不难理解当React Naive发布时,他们难以言喻的激动心情,但是“存在即合理”,这么多语言经过这么多年的大浪淘沙仍然存在,就证明它们是合理的,我们需要保持高度清醒。

  React Native的发布虽然让人激动,但是毫无疑问的是它并非完美无瑕,有很多缺点让我们不得不重新来审视它。1.组件不全,第三方组件也不全,遇到某些特殊功能,需要捣鼓很久。2.性能并非媲美原生,还是有一些损耗的,特别是交换大数据的时候。3.ios和android代码并非通用,有可能会需要维护两套,或者在代码内做一些判断。并非网上大家说的,写一次代码,多端通用,尤其是实际开发的时候,还是需要了解底层原理,自己开发跟原生桥接的组件,这个对普通前端来说是一个很大的挑战。所以,很多开发人员都断言React Native无法走的很远。

  事实上,React Native并不像开发人员所期望的那样一劳永逸解决了跨平台的问题,也不像另一些人员预料的那样见光死,相反,它正以着自己的脚步向前发展。在Facebook F8开发者大会上,在和三星、微软的合作下,React Native应用能够为Windows、Xbox、智能电视和可穿戴设备编译使用。微软现已支持在Universal Windows Platform(UWP)平台上使用React Native框架,同样那些为Windows编译的应用程序也能访问React Native工具。

  最后,我想说的是,这是一个互联网的时代,相信随着未来的发展,互联网开发生态会积累出更加优秀的框架,不管是React Native还是其它框架,它们一定会支撑更加伟大的产品出现。

React Native 可以走多远?的更多相关文章

  1. React的React Native

    React的React Native React无疑是今年最火的前端框架,github上的star直逼30,000,基于React的React Native的star也直逼20,000.有了React ...

  2. React Native小白入门学习路径——二

    万万没想到,RN组仅剩的一个学长也走了,刚进实验室没几天就被告知这样的事情,一下子还真的有点接受不了,现在RN组就成了为一个没有前辈带的组了,以后学习就更得靠自己了吧.唉,看来得再努力一点了. 这一周 ...

  3. 选择 React Native 的理由

    转载:选择 React Native 的理由 从开始知道 React Native 到现在已经过了5个月,真实的试用也经历了三个月的时间.阅读文档开始,了解是什么,到简单的理解为什么,都是在聆听不同的 ...

  4. React Native 在 Airbnb 的起起落落

    写在前面 Airbnb 早在 2016 年就上了 React Native 大船,是很具代表性的先驱布道者: In 2016, we took a big bet on React Native. T ...

  5. 【独家】React Native 版本升级指南

    前言 React Native 作为一款跨端框架,有一个最让人头疼的问题,那就是版本更新.尤其是遇到大版本更新,JavaScript.iOS 和 Android 三端的配置构建文件都有非常大的变动,有 ...

  6. React Native环境配置之Windows版本搭建

    接近年底了,回想这一年都做了啥,学习了啥,然后突然发现,这一年买了不少书,看是看了,就没有完整看完的.悲催. 然后,最近项目也不是很紧了,所以抽空学习了H5.自学啃书还是很无趣的,虽然Head Fir ...

  7. 【腾讯Bugly干货分享】React Native项目实战总结

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...

  8. React Native环境搭建以及几个基础控件的使用

    之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeT ...

  9. react native 入门实践

    上周末开始接触react native,版本为0.37,边学边看写了个demo,语法使用es6/7和jsx.准备分享一下这个过程.之前没有native开发和react的使用经验,不对之处烦请指出.希望 ...

随机推荐

  1. C/C++中慎用宏(#define)

    宏的定义在程序中是非常有用的,但是使用不当,就会给自身造成很大的困扰.通常这种困扰为:宏使用在计算方面. 本例子主要是在宏的计算方面,很多时候,大家都知道定义一个计算的宏,对于编译和编程是多么的有用. ...

  2. https post

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  3. 【转】IntelliJ IDEA2016.1 + maven 创建java web 项目

    最近开始使用idea 来写java项目了,这个很流行,相比Eclipse方便了很多.功能多了,相对应的使用的复杂度也较高了,因为网上很多的使用和创建项目的简单教程,都是基于老版本的,每个新版本都有不一 ...

  4. [Kafka] - Kafka Java Consumer实现(一)

    Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) H ...

  5. iOS开发tips-UIScrollView的Autlayout布局

    UIScrollViewj尽管继承于UIView,但它是一个相对比较特殊的视图,特别是当它遇到了AutoLayout之后.在UIScrollView中使用AutoLayout的目的除了使用相对约束确定 ...

  6. HTTP严格安全传输(HTTP Strict Transport Security, HSTS)chromuim实现源码分析(二)

    HTTP严格安全传输(HTTP Strict Transport Security, HSTS)chromuim实现源码分析(一) 下面来查看其他对保存HSTS信息的enabled_sts_hosts ...

  7. 初探Lambda表达式/Java多核编程【4】Lambda变量捕获

    这周开学,上了两天感觉课好多,学校现在还停水,宿舍网络也还没通,简直爆炸,感觉能静下心看书的时间越来越少了...寒假还有些看过书之后的存货,现在写一点发出来.加上假期两个月左右都过去了书才看了1/7都 ...

  8. Angular控制器

    这里使用的是angular-1.0.1.min.js Angular的前端渲染 <div> <ul> <li ng-repeat="i in [1,2,3]&q ...

  9. Lowest Common Ancestor of a Binary Tree leetcode

    Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...

  10. HTTP 返回状态代码详解

    1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. 100(继续)请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分:101(切换协议)请求者已要求服 ...