百度百科

React Native是Facebook于2015年开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架React在原生移动应用平台的衍生产物,支持IOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用,因此熟悉WEB前端开发的技术人员只需要很少的学习就可以进入移动应用开发领域。
React Native使你能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP。
React Native着力于提高多平台的开发效率——仅需学习一次,编写任何平台。

主要特性:

原生的IOS组件
React Native主张“Learn once,write everywhere”而非其他跨平台工具一直宣扬的:Write once,run everywhere。通过React Native,开发者可以使用UITabBar、UINavigationController等标准的IOS平台组件,让应用界面在其他平台上亦能始终保持如一的外观、风格。
异步执行
JavaScript应用代码和原生平台之间所有的操作都采用异步执行模式,原生模块使用额外线程,开发者可以解码主线程图像、后台保存至磁盘、无需顾忌UI等诸多因素直接度量文本设计布局。
触摸处理
React Native引入了一个类似于IOS上Responder Chain响应链处理机制的相应体系,并基于此为开发者提供了诸如TouchableHighlight等更高级的组件。

各路资料、详解

React Native,是一个混合移动应用开发框架。
React Native是目前流行的跨平台移动应用开发框架之一。在开发应用时,我们可以选择使用原生,纯基于Web或者使用混合方法(即使用原生和基于Web的技术的组合)。可以使用Apache Cordova(或Adobe PhoneGap)等开源平台编写HTML,CSS和JavaScript的跨平台混合应用。这些应用在原生Web视图(浏览器)中运行,所以看着就像Web应用,不过可以使用JavaScript和一些Apache Cordova插件调用原生功能和API。所以可以使用类似于Web应用而非原生应用的用户界面上架到Apple Store或Google Play的应用。或者,可以使用c#,XAML和CSS使用Xamarin来编写原生应用。对于用HTML5,CSS和JavaScript编写的非原生移动Web应用,还可以配套使用jQuery Mobile等框架。
React Native采用不同的方法进行混合移动应用开发。它不会生成UI组件,而是基于React,React Native是一个用于构建基于Web的交互界面的JavaScript库,因此会有更丰富的UI 体验效果,同时也能够很好地调用底层框架的UI使用。React Native已经成为一种流行的移动开发技术,它提供了一个使用JavaScript构建原生跨平台移动应用的强大框架,在需要时,我们也可以使用Objective-C,Swift或Java来编写原生代码来桥接。
使用React Native有利有弊从积极的方面来说,React Native已经成为受支持的开源社区的热门,可以使用一组技术(如JSX,React Native组件和JavaScript)为IOS和Android构建移动应用。这反过来有助于在发布新版本时使IOS和Android应用保持同步。但是,React Native仍在不断发展,当要在当前不需要React Native提供的功能(例如如何进行UI导航或使用地图)时决定使用哪些库时,可能会造成混淆。此外,根据应用的复杂程度,可能需要编写区别于平台的代码来解决移动平台的差异。对于复杂的应用,可能要编写自定义组件或深入了解IOS和Android(例如,出于性能原因或将React Native添加到现有原生应用所需的但不支持的UI组件)。

配置React Native环境

React Native的核心语言是JavaScript,特别是ECMAScript 6(ES6)。因此,需要熟悉ES6的一些最新功能。此外,在开始开发第一个React Native应用之前,需要安装必备的工具,比如IDE,JavaScript库等等。另外,还需要了解核心的React Native API。
目前来看,开发IOS原生应用只能用macOS系统。由于大多数移动应用都会涉及到Android和IOS两端,因此应该考虑使用Mac来开发React Native移动应用。
在创建项目之前,你需要安装一些东西,主要包括:
Android Studio和Xcode工具
安装最新版本以构建和发布应用。对于Android开发,确保为要运行的Android API版本配置正确的模拟器。
JavaScript IDE或文本编辑器
不需要使用Xcode或Android Studio来编写JavaScript代码,真正需要的只是一个文本编辑器。比如使用Atom(由GitHub开发),Sublime Text或喜欢的任何优秀文本编辑器。
JavaScript或React Native 包
安装一些工具来管理React Native软件包以及三方库,包括
从nodejs.org下载node.js:为了让JavaScript运行时允许访问npm,这是一个由node.js项目创建的便捷工具,可用于管理开源软件包。确保下载node.js的最新LTS(长期支持)版本。此下载中还包括一个名为Metro bundler的开发服务器,它在调试时能够提供实时更新渲染。
下载create-react-native-app:可以使用此工具开始开发。它可以创建一个基础项目。
下载常用的第三方库。React Native提供了很多基础组件,与原生API使用相比会更加简单。常规的移动应用使用可能包括相机,管理状态,并具有导航,地图,图标和复选框。这都可以从React Native社区获取对应组件。
此外,可以到React Native Elements获取需要的其他UI组件元素。在开发一个完整功能的app时,需要用到上面提到的UI组件。用这个方法来安装以前的packages
React Native Debugger:这是一个非常棒的调试器,同时他还是一个独立的应用,里面能用到的工具包括React Inspector和Redux DevTools。配置好环境后可以连接到应用(注意:一次只能调试一个应用),可以很方便的实时查看React Native应用的状态,调试必备工具。

结论

React Native是一个充满活力并且不断发展的框架和社区。但React Native并不像原生应用开发那样成熟。所以必须为Android,IOS和React Native的开发保持稳定的环境,包括所有相关的开发工具。对于React Native中不存在的组件,可以Google搜索,就可以找到所需内容,请记住所选的第三方库可能会更改或维护可能会停止或被放弃,这是一个要考虑的主要风险。
React Native并不适合所有人或每个项目。这需要考虑创建和维护React Native代码,工具,开发环境和技能集的时间,精力和成本,而不是仅仅关注原生代码。

React Native惊喜

1、即使你不懂如何使用Java或Kotlin开发Android,或者不懂如何使用Swift或Objective-c来开发IPad或IPhone应用也不要紧,因为React Native几乎不需要和它们打交道。
2、如果你想同时开发Android和IOS应用,只要你的开发人员懂前端,懂JavaScript和React就够了,也能开发移动应用。
特性
1、底层采用Facebook开发的React技术。
React是一个视觉框架,使用JavaScript来构建网页和移动网页。
2、React Native内置了大量的原生组件,这比Web App有着更强大的性能。
3、React Native开发的APP可以运行在IOS平台和Android平台。
优点
1、完全采用JavaScript语言
2、跨平台,尤其是Android和IOS两端
3、React Native具有强大的社区,有着众多的开发者提供了各种类型的组件
缺点
1、复杂的状态管理、页面切换。即使你会React ,也会觉得它的页面切换有点绕。
2、创建新的原生组件复杂。如果你要创建一个之前从未出现的原生组件,难度直线上升。不仅需要懂得Android开发,还要懂得IOS开发。

手机app开发可选技术——React Native相关推荐

  1. 手机app开发可选技术——webview

    选型标准 ·写代码的难易度 ·编译的难易度 ·上架和推广的难易度 ·小程序和原生应用的不同等方面 技术方案 WebView 入门知识 我们通常是使用浏览器浏览网页,你很清楚的知道你正在使用浏览器,要么 ...

  2. python手机app开发_H5 手机 App 开发入门:技术篇

    新人学习手机 App 开发,一开始总要选择一条学习路径. 如果你熟悉 Java 语言,可以学习安卓开发:如果熟悉脚本语言(比如 Python 或 Ruby),可以学习 Swift 语言,进行 iOS ...

  3. (转载)H5 手机 App 开发入门:技术篇

    H5 手机 App 开发入门:技术篇 一.手机 APP 的技术栈 二.WebView 控件 三.原生技术栈 3.1 Xcode 3.3 Android Studio 四.混合技术栈 4.1 框架种类 ...

  4. H5 手机 App 开发入门:技术篇

    新人学习手机 App 开发,一开始总要选择一条学习路径. 如果你熟悉 Java 语言,可以学习安卓开发:如果熟悉脚本语言(比如 Python 或 Ruby),可以学习 Swift 语言,进行 iOS ...

  5. 什么是 Native、Web App、Hybrid、React Native和Weex?

    一句话概要 Native.Web App.Hybrid.React Native(后面以RN简称).Weex 间的异同点,后期同步小程序和PWA. App常用开发模式简介 此处App为应用,appli ...

  6. 什么是 Native、Web App、Hybrid、React Native 和 Weex?

    (点击上方公众号,可快速关注) 来源:zwwill_木羽 segmentfault.com/a/1190000011154120 一句话概要 Native.Web App.Hybrid.React N ...

  7. 手机App开发的基础概念

    App概念: 就是手机上的应用程序,点击图标就能运行,但是它们的底层技术不一样.按照开发技术,App 可以分成三大类. 原生应用(native application,简称 native App) W ...

  8. (转载)H5 手机 App 开发入门:概念篇

    H5 手机 App 开发入门:概念篇 一.H5 的含义 二.原生应用 2.1 概念 2.2 优点 2.3 缺点 三.Web 应用 3.1 概念 3.2 优点和缺点 3.3 Web APP 的劣势 3. ...

  9. H5 手机 App 开发入门:概念篇

    手机现在是互联网的最大入口.根据<中国互联网报告>,手机网民已经超过8亿,人均每天上网三个多小时. 毫不奇怪,手机应用软件(mobile application,简称 mobile App ...

最新文章

  1. 关于举办第十五届全国大学生智能汽车竞赛浙江赛区选拔赛的通知(草案)
  2. Java截取最后一个/后面的所有字符
  3. bootstrap绿色大气后台模板下载[转]
  4. Java工作笔记-Spring Boot封装Jedis实例
  5. python 释放内存_python深入之python内存管理机制(重点)
  6. 遥感数据下载网站整理
  7. 吃鸡ios和android灵敏度,吃鸡手游pc版怎么调灵敏度参数教程 | 手游网游页游攻略大全...
  8. 3D-06-打飞碟(物理运动)
  9. ubuntu14.04安装ANSYS14.5的血泪史
  10. android机器人酷炫壁纸,机器人秀app下载
  11. java.io.IOException Failed to replace a bad datanode
  12. 忘记apusic应用服务器web控制台admin密码怎么办?
  13. 1. 树莓派点灯学习(UI界面控制)
  14. 通过SQL语句实现搜索附近的人
  15. python接入萤石云HLS直播流(海康威视摄像头4g连接条件下)
  16. Jetson Nano——使用JetCam官方库调用双CSI摄像头
  17. 2.ZooKeeper分桶策略实现高性能的会话管理「第五章 ZooKeeper 原理」「架构之路ZooKeeper理论和实战」
  18. NISP-信息安全事件与应急响应
  19. iPortal配置内置导航
  20. AI校园来了,你准备好了吗?

热门文章

  1. 纳米压痕仪应用及制样要求
  2. 【FanOne的博客导航】希望你能喜欢这里 | 欢迎光临~
  3. 003:core.discount_cumsum(),RL求优势函数时用到的函数——介绍
  4. 【涨粉秘籍】如何快速涨粉并转化为铁粉。
  5. 如何网络推广_seo研究中心
  6. (摘要)ICLR 2017 神经网络压缩,Incremental Network Quantization: Towards Lossless CNNs with Low-Precision Weig
  7. C++vector应用
  8. 5. Docker容器互联1--Docker存储原理和基于Docker Volum的容器互联
  9. 【人工智能】如何看待人工智能技术的变革与未来? 分10个方面来详细展开谈谈,不少于5000字。
  10. 自然码辅助码在线查询网站