文章目录

  • 一丶React Native 惊喜
  • 二丶React Native 简介
  • 三丶React Native 特性
  • 四丶React Native 优点
  • 五丶React Native 局限性
  • 六丶构建最简单的应用
  • 七丶学习资料

一丶React Native 惊喜

React Native 是一个使用JavaScript 和 React 来编写跨终端移动应用(Android 或 IOS)的一种解决方案
这句话是什么意思呢?

  1. 即使你不懂如何使用 Java 或 Kotlin 开发 Android,或者不懂如何使用 Swift 或 Objective-c 来开发
    iPad 或 iPhone 应用也不要紧,因为 React Native 几乎不需要和它们打交道。
  2. 这句话的另一个意思呢,就是,如果你想同时开发 Android 和 iOS 应用,但苦于资金或者其他杂七杂八的条件,找不齐 Android
    或者 iOS 的开发人员,那么也不要紧,只要你的开发人员懂前端,懂 JavaScript 和 React 就够了,也能开发移动应用
  3. 当然了,这句话还意味着,只要你招了一个会 React 的前端,那么你就拥有 网页H5 页面移动 App 的全栈开发能力。是不是很惊喜…

二丶React Native 简介

现在绝大多数 App 都采用混合模型开发,固定的基础的组件使用 Java 或 Swift 等原生语言开发,而偏运营的组件和页面则采用 React Native 等H5形式开发。

这样做的好处就是原生开发者致力于创造基础组件,H5 致力于运营体验。

现在的 iOS 审核速度已经很快了,几乎一天就有结果,但是之前,可能要审核一周,半个月,甚至还会不通过,然后又要重新开始进入审核等待,这对于大部分需要频繁更新的 App 来说是不可接受的。

在这种情况下,React Native 出现了,它的首打功能就是 热更新技术
热更新 技术可以稍微的绕过应用商店的审核而直接更新。这样就可以达到快速上线的功能目的。

对于 React Native,官方的介绍更能体现出它的诞生前因后果。

1. React Native 让我们可以只使用 JavaScript 语言就能构建出手机APP。

2. React Native 采用 React 作为底层框架,如果你会 React 那么久很容易上手 React Native。

3. React Native 采用声明性组件中创建丰富的移动UI。
使用 React Native,你不是在构建移动 Web 应用程序,也不是在构建 HTML5 应用程序,更不是在构建混合应用程序。你是在构建一个真正的移动应用程序,与使用 Objective-C 或 Java 构建的应用程序没啥区别的。

4. React Native 使用与原生iOS 和 Android 应用相同的基本 UI 构建块。如果你熟悉原生 iOS 或 Android
开发,那么只需要使用 JavaScript 和 React 讲这些构建块放一起。

三丶React Native 特性

我经常傻傻的分不清 特性优点 的区别。按照我们中文的意思来讲,特性 不就是 优点 么?
算了,不纠结了,React Native 有着以下的几个特性:

1. React
底层采用 Facebook 开发的 React 技术。
React 是一个视觉框架,使用 JavaScript 来构建网页和移动网页。

2. 原生
React Native 内置了大量的原生组件,这比 Web App 有着更强大的性能。

3. 平台多样性
React Native 开发的 App 可以运行在 iOS平台 和 Android 平台。

四丶React Native 优点

现在市面上类似 React Native 的框架很多,有H5,混合 App 等等,还有那个淘宝开发的 Weex 好像。即便如此,我们仍然选择 React Native,为什么?

1. JavaScript
完全采用 JavaScript 语言。而不是某些不伦不类的看似 JS 又不是 JS的语言。
这意味着在语言层面我们根本不需要重新学习。

2. 跨平台
Write Once,Run anywhere 变得可能,尤其是 Android 和 iOS 两端。

3. 社区给力
国人的项目差距就在这里,国内的很多项目,尤其是阿里系的,看起来就是某个人的绩效。一段时间后连维护都不了。
React Native 有着强大的社区,有着众多的开发者提供了各种类型的组件。

五丶React Native 局限性

当然了,React Native 也不是万能的,它也有着自己的缺点和局限性。

React Native 的缺点有两个:

  1. 复杂的状态管理,页面切换。即使你会 React,也会觉得它的页面切换有点绕。
  2. 创建新的原生组件复杂。如果你要创建一个之前从未出现过的原生组件,难度直线上升。你不仅需要懂得 Android 开发,还需要懂得 iOS 开发。

六丶构建最简单的应用

import React, { Component } from 'react';
import {Platform,StyleSheet,Text,View
} from 'react-native';const instructions = Platform.select({ios: 'Press Cmd+R to reload,\n' +'Cmd+D or shake for dev menu',android: 'Double tap R on your keyboard to reload,\n' +'Shake or press menu button for dev menu',
});export default class App extends Component<{}> {render() {return (<View style={styles.container}><Text style={styles.welcome}>this is my first react native to  say hello world</Text></View>);}
}const styles = StyleSheet.create({container: {flex: 1,justifyContent: 'center',alignItems: 'center',backgroundColor: '#F5FCFF',},welcome: {fontSize: 20,textAlign: 'center',margin: 10,},instructions: {textAlign: 'center',color: '#333333',marginBottom: 5,},
});

七丶学习资料

【B站-老陈打码】2020前端React-Native跨平台APP实战开发教程
React Native 官网

React Native 介绍相关推荐

  1. Flutter介绍 - Flutter,H5,React Native之间的对比

    Flutter介绍 Flutter是Google推出的开源移动应用开发框架.开发者可以通过开发一套代码同时运行在iOS和Android平台. 它使用Dart语言进行开发,并且最终编译成各个平台的Nat ...

  2. Android之React native的介绍和入门指南

    链接:http://zhuanlan.zhihu.com/FrontendMagazine/19996445 数月前,Facebook 对外宣布了正在开发的 React Native 框架,这个框架允 ...

  3. 2.React Native Flex布局介绍以及实践

    好久没有写博客,一直在用自己的印象笔记记录一些问题.2017年了,想重新的把博客写起来.也希望通过这个平台交一些朋友. 没有具体的介绍基本的语法,主要是说明了与标准的CSS Flex的一些区别以及一个 ...

  4. React Native 系列(三) -- 项目结构介绍

    前言 本系列是基于React Native版本号0.44.3写的,相信大家看了本系列前面两篇文章之后,对于React Native的代码应该能看懂一点点了吧.本篇文章将带着大家来认识一下React N ...

  5. 【React Native】iOS原生导航跳转RN页面

    上一篇介绍了React Native使用react-navigation进行导航跳转页面,现在我们介绍下原生iOS中怎么导航进一个新的React Native页面. 一.原生跳转React Nativ ...

  6. 【React Native】react-navigation导航使用方法

    目录 集成react-navigation 使用react-navigation 上一篇介绍了如何在已有iOS项目中集成React Native.这一篇我们把上一篇的demo做下拓展,添加点击电影跳转 ...

  7. React Native开源项目如何运行(附一波开源项目)

    学习任何技术,最快捷的方法就是学习完基础语法,然后模仿开源项目进行学习,React Native也不例外.React Native推出了1年多了, 开源项目太多了,我们以其中一个举例子.给大家演示下如 ...

  8. React Native 网络层分析

    文:志俊(沪江Web前端) 本文原创,转载请注明作者及出处 在使用React Native开发中,我们熟练的采用JavaScript的方式发送请求的方式发送一个请求到服务端,但是处理这个请求的过程其实 ...

  9. 最火移动端跨平台方案盘点:React Native、weex、Flutter

    本文原文由"恋猫月亮"原创发布,原题为<移动端跨平台开发的深度解析>,本次重新整理后,为了优化阅读体验,内容略有改动,感谢原作者的无私分享. 1.前言 跨平台一直是老生 ...

  10. 如何在React Native中写一个自定义模块

    前言 在 React Native 项目中可以看到 node_modules 文件夹,这是存放 node 模块的地方,Node.js 的包管理器 npm 是全球最大的开源库生态系统.提到npm,一般指 ...

最新文章

  1. sqlplus中调用shell_(转)shell 调用sqlplus各种情况示例
  2. 装饰者模式源码解析(spring-session mybatis jdk servlet)
  3. 阿里十年DBA经验产品经理:真的不要再有一起删库跑路事件了
  4. 组件注册@ComponentScan的自动扫描和指定扫描规则
  5. 3D数学之四元组应用及实现
  6. 运维 如何选择最合适的服务器方案(一):服务器硬件配置
  7. No qualifying bean of type;Unsatisfied dependency expressed through field 解决办法(总结全网)
  8. 中源幼儿园收费管理系统 v5.2.8 是什么
  9. 网页flash加载不出来
  10. html生成pdf java_Java实现HTML代码生成PDF文档
  11. PADS VX2.8 原理图图页的添加与名称修改的方法
  12. 打外星生物的塔防java_《异形防御者》测评:外星人也玩塔防游戏
  13. redis desktop manager安装以及使用教程
  14. 区块链学习笔记及总结【二】
  15. 【Math】证明随机分布X1, X2, ..., Xn独立同分布的最大概率问题
  16. 最新的百度网盘不限速下载工具 - 100兆速度理论10m/s
  17. 乐视2手机无信号服务器,解决乐视手机wifi信号差问题的方法
  18. windows分屏 拔掉显示器之后软件不在主显示器上显示问题
  19. Java对文本内容进行排序
  20. 分布式计算的八大谬论

热门文章

  1. 如果因为断电等导致文件损坏的系统无法开启的解决办法(鸟哥私房菜)
  2. Xcode 8.1 : Unable to read from device
  3. 今天闲来无事,做了个简易的ORM 感觉有点像ActiveRecord作业风格,又有点像iBatis...
  4. 【论文分享】ACL 2020 图神经网络在自然语言处理中的应用
  5. 【NER】NLP-入门实体命名识别(NER)+Bilstm-CRF模型原理Pytorch代码详解——最全攻略...
  6. 图文并茂带你迅速了解本科、硕士、博士的区别
  7. 【数据集】机器学习数据集汇总(附下载地址)
  8. 【干货】22道机器学习常见面试题目
  9. 深度学习TF—6.神经网络过拟合及reduce overfitted
  10. 数据科学包5- pandas基础之基础运算