对于大多数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. java byte【】数组与文件读写

    此文全文参考http://blog.csdn.net/sniffer_wang/article/details/7455701,自己加以改进应用,谢了 import java.io.ByteArray ...

  2. WDCP下安装PHPWind

    创建整站跟新建站点的区别是创建整站会一并生成ftp跟mysql数据库 这边只要填写一个域名(如果你有域名就填写下域名 如果你没有域名 或者跟我一样到这步去申请域名的可以填写ECS公网ip否则无法访问新 ...

  3. 通过oledb驱动读取excel、csv数据丢失解决方案

    1.问题出现 在开发应用程序的过程中,比较常用一功能就是通过oledb驱动读取excel.csv.text等文件:而最近有客户反映,在使用短信平台(下载地址:http://www.sms1086.co ...

  4. ES(二): Build ES Cluster on Azure VM

    目录: 系统环境准备 安装ES集群 安装Kibana 安装x-pack 安装head 系统环境准备 参见: HDP2.4安装(二):Centos7配置 修改network: 修改hosts: 配置ss ...

  5. Nginx+Python+uwsgi+Django的web开发环境安装及配置

    Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...

  6. POJ 2989 All Friends 极大团计数

    POJ 2989 题意:给定一个无向图(节点数小于128)求极大团(不包含在更大的团中)的总数. 对最大团,极大团不熟悉的,建议先阅读最大团搜索问题 ZOJ 1492 再来看本题. 本题数据有限,可以 ...

  7. 每天一个linux命令(56)--crontab命令

    上一节学习了 at  命令是针对仅运行一次的任务,循环运行的例行性计划任务,Linux 系统则是由 cron(crond)这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...

  8. 自定义view(一)

    为什么标题会是自定义view(一)呢?因为自定义view其实内容很多,变化也很多,所以我会慢慢更新博客,争取多写的有关的东西,同时,如果我以后学到了新的有关于自定义view的东西,我也会及时写出来. ...

  9. Python学习--23 第三方库

    本文将介绍python里常用的模块.如未特殊说明,所有示例均以python3.4为例: $ python -V Python 3.4.3 网络请求 urllib urllib提供了一系列用于操作URL ...

  10. JavaScript设计模式之构造器、模块和原型

    JavaScript面向对象 JavaScript是一种无类语言,但可以使用函数来模拟,这就涉及到设计模式.模式是一种已经验证过的可复用的解决方案,可用于解决软件设计中遇到的常见的问题,通常将这些解决 ...