React Native 的基础是React, 是在 web 端非常流行的开源 UI 框架。要想掌握 React Native,先了解 React 框架本身是非常有帮助的。

一、什么是React Native

1.1 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 的全栈开发能力。是不是很惊喜…

1.2 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 将这些构建块放一起。

1.3 React Native 特性

  React Native 有着以下的几个特性:

  1.  React    -----底层采用 Facebook 开发的 React 技术。React 是一个视觉框架,使用 JavaScript 来构建网页和移动网页。
  2. 原生        -----React Native 内置了大量的原生组件,这比 Web App 有着更强大的性能。
  3. 平台多样性   ---- React Native 开发的 App 可以运行在 iOS平台 和 Android 平台。

1.4 React Native 优点

  1. JavaScript

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

  2. 跨平台

    Write Once,Run anywhere 变得可能,尤其是 Android 和 iOS 两端。

  3. 社区给力

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

1.5 React Native 局限性

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

  React Native 的缺点有两个:

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

二、React Native环境搭建

   React Native环境的搭建与安装整个过程相对繁琐,步骤较多。最最最最最主要的是!在下载安装过程中不可中断网络,一旦断了就得重新下载。并且该过程中要求学会FQ,具体如何FQ这种问题就不要问啦,自行研究

React Native中文网:https://www.reactnative.cn/docs/environment-setup

   基于国内用户系统环境,下文将介绍React Native的Windows环境安装。使用MAC系统或Linux系统的同学可自行查询官方安装文档说明。

2.1 环境搭建

1、安装依赖:

必须安装的依赖有:Node、JDK 和 Android Studio。

  在安装React Native时必须要求开发者系统中安装有Node、JDK 和 Android Studio。虽然你可以使用任何编辑器来开发应用(编写 js 代码),但你仍然必须安装 Android Studio 来获得编译 Android 应用所需的工具和环境。

2、Node、JDK安装

Node >= 12; JDK=1.8

 JDK中文网:https://www.oracle.com/cn/java/technologies/downloads/#java8

 Node官网网址:https://nodejs.org/zh-cn/

注意 Node 的版本应大于等于 12,安装完 Node 后建议设置 npm 镜像(淘宝源)以加速后面的过程(或使用FQ上网工具)。

注意!!!!低于 0.67 版本的 React Native 需要 JDK 1.8 版本(官方也称 8 版本)。

  既然已经说到JDK了那么小提一点。相信很多同学目前系统上的JDK不是8版本,而是更高的版本。这样React Native更大可能将出现版本兼容问题。如果把原有JDK版本卸载了那又会影响到很多以前的项目。这时候什么办呢?好问题!!!   有了好问题当然不能放过 ChatGPT 啦。

3、Yarn

Yarn是 Facebook 提供的替代 npm 的工具,可以加速 node 模块的下载。

安装命令:npm install -g yarn

安装完 yarn 之后就可以用 yarn 代替 npm 了,例如用yarn代替npm install命令,用yarn add 某第三方库名代替npm install 某第三方库名

4、Android 开发环境

  请注意!!!国内用户必须必须必须有稳定的代理软件,否则在下载、安装、配置过程中会不断遭遇链接超时或断开,无法进行开发工作。某些代理软件可能只提供浏览器的代理功能,或只针对特定网站代理等等,请自行研究配置或更换其他软件。总之如果报错中出现有网址,那么 99% 就是无法正常连接网络。

首先下载和安装 Android Studio,国内用户可能无法打开官方链接,请自行使用搜索引擎搜索可用的下载链接。安装界面中选择"Custom"选项,确保选中了以下几项:

  • Android SDK
  • Android SDK Platform
  • Android Virtual Device

然后点击"Next"来安装选中的组件。

如果选择框是灰的,你也可以先跳过,稍后再来安装这些组件。

安装完成后,看到欢迎界面时,就可以进行下面的操作了。

4.1安装 Android SDK

  Android Studio 默认会安装最新版本的 Android SDK。目前编译 React Native 应用需要的是Android 12 (S)版本的 SDK(注意 SDK 版本不等于终端系统版本,RN 目前支持 android 5 以上设备)。你可以在 Android Studio 的 SDK Manager 中选择安装各版本的 SDK。

  你可以在 Android Studio 的欢迎界面中找到 SDK Manager。点击"Configure",然后就能看到"SDK Manager"。

SDK Manager 还可以在 Android Studio 的"Preferences"菜单中找到。具体路径是Appearance & Behavior → System Settings → Android SDK

在 SDK Manager 中选择"SDK Platforms"选项卡,然后在右下角勾选"Show Package Details"。展开Android 12 (S)选项,确保勾选了下面这些组件(重申你必须使用稳定的代理软件,否则可能都看不到这个界面):

  • Android SDK Platform 31
  • Intel x86 Atom_64 System Image(官方模拟器镜像文件,使用非官方模拟器不需要安装此组件)

然后点击"SDK Tools"选项卡,同样勾中右下角的"Show Package Details"。展开"Android SDK Build-Tools"选项,确保选中了 React Native 所必须的31.0.0版本。你可以同时安装多个其他版本。

最后点击"Apply"来下载和安装这些组件。

4.2 配置 ANDROID_SDK_ROOT 环境变量

  React Native 需要通过环境变量来了解你的 Android SDK 装在什么路径,从而正常进行编译。

  打开控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量 -> 新建,创建一个名为ANDROID_HOME的环境变量(系统或用户变量均可),指向你的 Android SDK 所在的目录(具体的路径可能和下图不一致,请自行确认):

  

  SDK 默认是安装在下面的目录:

C:\Users\你的用户名\AppData\Local\Android\Sdk

你可以在 Android Studio 的"Preferences"菜单中查看 SDK 的真实路径,具体是Appearance & Behavior → System Settings → Android SDK。你需要关闭现有的命令符提示窗口然后重新打开,这样新的环境变量才能生效。

把一些工具目录添加到环境变量 Path

  打开控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量,选中Path变量,然后点击编辑。点击新建然后把这些工具目录路径添加进去:platform-tools、emulator、tools、tools/bin

%ANDROID_SDK_ROOT%\platform-tools
%ANDROID_SDK_ROOT%\emulator
%ANDROID_SDK_ROOT%\tools
%ANDROID_SDK_ROOT%\tools\bin

2.2 尝试安装一个项目

如果你之前全局安装过旧的react-native-cli命令行工具,请使用npm uninstall -g react-native-cli卸载掉它以避免一些冲突:

npm uninstall -g react-native-cli @react-native-community/cli

使用 React Native 内建的命令行工具来创建一个名为"AwesomeProject"的新项目。这个命令行工具不需要安装,可以直接用 node 自带的npx命令来使用:

必须要看的注意事项一:请不要在目录、文件名中使用中文、空格等特殊符号。请不要单独使用常见的关键字作为项目名(如 class, native, new, package 等等)。请不要使用与核心模块同名的项目名(如 react, react-native 等)。

必须要看的注意事项二:请不要在某些权限敏感的目录例如 System32 目录中 init 项目!会有各种权限限制导致不能运行!

必须要看的注意事项三:请不要使用一些移植的终端环境,例如git bashmingw等等,这些在 windows 下可能导致找不到环境变量。请使用系统自带的命令行(CMD 或 powershell)运行。

npx react-native init AwesomeProject

 注意!!!  初始化第一个项目这个过程非常非常的难熬,因为这个过程中不仅需要等待 React Native下载补全配置还需要它自己下载各种东西,并且这个过程你要保持你的网络是外网,也就是说整个安装过程你的网络必须都处于FQ代理状态,网络也要保证快速,不然会很卡,一旦中断了又得重新下载。不过第一次初始化项目完成之后就往后就不需要这么难受了。第一次真的越想越气。

如果你的项目创建成功之后,那么。。。就打开你的Android Studio创建一个新的项目:

随意选择一个新的UI模板. Next 进行下一步,注意不能使用中文路径和项目名称!

进入项目页面。那么现在你就可以安装Android系统模拟器了,也就是咱们的手机 ,这就对于手机是IOS系统的同学需要安装模拟器啦。

选择你需要的模拟器版本,看你需要来安装吧。

接下来就需要选择你自身安装的Android SDK对应版本,等待下裁安装完成。

安装完成之后再页面中将会出现安装好的模拟器控制栏。点击运行就可以运行你的模拟器了。

这个时候运行刚才创建的项目。

确保你先运行了模拟器或者连接了真机,然后在你的项目目录中运行yarn android或者yarn react-native run-android

那么到这里不出意外的话就恭喜!你已经成功运行并修改了你的第一个 React Native 应用。

使用移动设备调式项目

  如果你不想那么麻烦的下载模拟器来调试你的项目,而刚好你又有一个Android的移动设备(最好是手机)。那么可以使用你的移动设备来调试你的项目。

只需用 usb 数据线连接到电脑,然后遵照在设备上运行这篇文档的说明操作即可。

1.使用你的USB数据选连接到你的电脑

2.开启你的开发者模式。

  在你的手机中找到:设置——关于本机——版本信息——版本号(连续快速点击很多次就会进入)

  每个手机的打开开发者模式不一样,可以自行解决。

3.允许USB调式模式和使用共享网络

4.检查是否正确连接

下面检查你的设备是否能正确连接到 ADB(Android Debug Bridge),使用adb devices命令:

$ adb devices
List of devices attached
emulator-5554 offline # Google emulator
14ed2fcc device # Physical device

在右边那列看到device说明你的设备已经被正确连接了。注意,你每次只应当连接一个设备

5.运行项目

  现在你可以运行下面的命令来在设备上安装并启动应用了。

npx react-native run-android

6.移动设备上允许安装程序

7.运行结果

React Native学习笔记----React Native简介与环境安装的更多相关文章

  1. Django学习笔记(一):环境安装与简单实例

    Django学习笔记(一):环境安装与简单实例 通过本文章实现: Django在Windows中的环境安装 Django项目的建立并编写简单的网页,显示欢迎语与当前时间 一.环境安装 结合版本兼容性等 ...

  2. kvm虚拟化学习笔记(一)之kvm虚拟化环境安装

    平时一直玩RHEL/CentOS/OEL系列的操作,玩虚拟化也是采这一类系统,kvm在RHEL6系列操作系统支持比较好,本文采用采用OEL6.3操作系统,网上所有文章都说KVM比xen简单,我怎么感觉 ...

  3. ES6 学习笔记 (2)-- Liunx环境安装Node.js 与 搭建 Node.js 开发环境

    笔记参考来源:廖雪峰老师的javascript全栈教程 一.安装Node.js 目前Node.js的最新版本是6.2.x.首先,从Node.js官网下载对应平台的安装程序. 1.下载 选择对应的Liu ...

  4. Python3学习笔记(一): 环境安装

    一.下载Python软件包 进入官网https://www.python.org/downloads/,下载符合你当前OS的版本 我用的是Win7 64位系统,在这里下载的是Windows 64位可执 ...

  5. RabbitMQ学习笔记一:本地Windows环境安装RabbitMQ Server

    一:安装RabbitMQ需要先安装Erlang语言开发包,百度网盘地址:http://pan.baidu.com/s/1jH8S2u6.直接下载地址:http://erlang.org/downloa ...

  6. python学习笔记1之-python简介及其环境安装

    python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...

  7. kvm虚拟化学习笔记(三)之windows kvm虚拟机安装

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  8. kvm虚拟化学习笔记(二)之linux kvm虚拟机安装

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  9. React Native 学习笔记--进阶(二)--动画

    React Native 进阶(二)–动画 动画 流畅.有意义的动画对于移动应用用户体验来说是非常必要的.我们可以联合使用两个互补的系统:用于全局的布局动画LayoutAnimation,和用于创建更 ...

  10. React 入门学习笔记整理目录

    React 入门学习笔记整理(一)--搭建环境 React 入门学习笔记整理(二)-- JSX简介与语法 React 入门学习笔记整理(三)-- 组件 React 入门学习笔记整理(四)-- 事件 R ...

随机推荐

  1. Blazor和Vue对比学习(进阶.路由导航一):基本使用

    Blazor和Vue都是单文件组件SPA,路由的实现逻辑非常相似,页面路径的改变都是组件的切换,但因为各自语言的特性,在实现方式上有较大差异. 一.安装 1.Vue:Router是Vue的一个插件.如 ...

  2. 《Java口袋指南》-内容总结

    Java口袋指南   一.语言   1.命名   类名:大驼峰   泛型:E标识集合元素   方法名:小驼峰   变量名:小写   包名:小写或下划线   2.词法元素/token   字符串压缩优化 ...

  3. MetaTown:一个可以自己构建数字资产的平台

    摘要:华为云Solution as Code重磅推出<基于MetaTown构建数字资产平台>解决方案. 本文分享自华为云社区<基于MetaTown构建数字资产平台>,作者: 阿 ...

  4. SpringCloud微服务框架复习笔记

    SpringCloud微服务框架复习笔记 什么是微服务架构? 微服务是一种软件开发技术,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进 ...

  5. element-ui中table组件的表格嵌套Select,table中使用select

    在table组件中,有一个<template slot-scope="scope"></template>,这个模板有一个slot-scope属性,这个属性 ...

  6. elementui中 table表格 合并表头

    需要实现的效果如图,表格头部合并成一排. 因为总共是4列,所以colSpan =4表示合并4列 头部给个高度,居中一下就ok啦

  7. [WPF]Win10便签软件

    项目地址 Github:项目地址 软件截图 项目中用到的技术和问题 [WPF]限制程序单例运行 [WPF]创建系统栏小图标 [WPF]程序随系统自启动 [WPF]xml序列化以及反序列化数据 [WPF ...

  8. C++ 一种交换两个数的思路

    在 Lua 或者 Python 中可以使用多值赋值语句来交换两个数.例如:a, b = b, a.在 C++ 中有没有类似的操作? 先解析一下多值赋值的原理,a, b = b, a 等价于 t1, t ...

  9. 闻其声而知雅意,基于Pytorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python3.10)

    前文回溯,之前一篇:含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入),利用AI技术将文本合成语音,现在反过来,利用开源库Whisper再将语音转 ...

  10. 超详细版本vue+capacitor(自定义capacitor插件)编写移动端应用

    我的环境 Node v16.13.0 npm v8.1.0 mac的话需要安装Xcode windows的话需要Java 8 JDK和Android Studio软件 本文以安卓开发为例 找一个自己喜 ...