React Native入门系列:创建我的第一个RN Project

2023-10-26

一、前言

1.准备

在创建RN之前,我们需要先安装相应的工具和搭建环境。
可以参考我上一篇文章:React Native入门系列:如何搭建RN环境(Windows篇)

2.目标

本章例子中文章达到目标:

  • 创建RN项目步骤
  • 在创建中遇见的问题解决
  • 配置WebStrom

建议下载最新版WebStrom: 官方最新版WebStrom下载地址

  • 使用WebStorm+AndroidStudio来写RN程序
3.项目地址

二、开启大表哥代码模式

1.创建RN项目
  • 在E盘根目录下 创建一个ReactSpace文件夹 用于储存RN项目
  • cmd打开dos命令窗口,开始创建RN项目,如下命令:
    react-native init FirstRNProject
    
初始化创建项目.png
  • 当你的项目创建完毕后,会在你所指定创建的文件夹下面多出一个文件夹,这个就是你当前创建的RN Project,用webStrom打开项目,目录结构大致如下:
RN项目结构.png
  • 此刻我们应该启动服务端(packager),我们新打开一个cmd窗口,定位到项目根目录,命令如下:
      react-native start 
    
或者
    npm start
启动服务端.png
  • 启动完成后,先关联设备,这样才能够在手机上面正常调试:

手机的wifi和电脑处于同一个局域网下面,并使用8081端口(切记要保证手机和电脑在同一网段,且没有防火墙阻拦)。
可通过ipconfig命令查看电脑IP

查看IP.png

然后在手机上面手动添加代理

手动代理.png

手机添加关联完毕!(这个时候你用手机打开任意App可以看见你的npm在跑)

  • 打开手机调试模式连接电脑,新建一个cmd窗口(切记 保持服务端(packager)在运行),在项目根目录下输入运行命令(以Android为例子),命令如下:
      react-native run-android
    

等命令执行完毕,app会自动运行并且打开
这个时候有的手机会显示一片红色,这个时候,一般是服务端正在加载数据或者加载错误,解决办法就是点击下面中间的RELOAD重新加载,或者等一会儿。

加载错误.png

有的手机做完了上面所有步骤,发现界面一片空白,这种情况是因为悬浮窗权限被禁用,去权限管理里面打开权限,重新打开APP,就可以解决该情况。
启动成功界面应该是下图:

成功结果.png

此时此刻,你已经能够自己创建项目并且运行了。

2.安装配置WebStrom
注意:建议使用2017系列版本的WebStrom,因为后面我们要用到npm功能,老版本是没有的。
  • 安装WebStrom

文章开头我已经给出了最新版WebStrom下载地址,这里我说一下2017版本破解方法:
2017.2.27更新
选择“license server” 输入:http://idea.imsxm.com/
2016.2.2 版本的破解方式:
安装以后,打开软件会弹出一个对话框;选择“license server” 输入:http://114.215.133.70:41017

  • 导入项目

点击Open,打开项目,点开index_android.js发现有报错,原因是由于 React Native 是基于 React 的,而 React 使用的是 JSX 语法,因此,使用 WebStorm 开发 React Native 之前,我们首先需要设置支持的 Javascript 语法,点击 WebStorm-Preferences,在打开的对话框中选择 Javascript language version 为 React JSX(有的版本是JSX Harmony) 即可在代码编辑器中识别 JSX。

设置JSX.png
  • 配置npm

维基百科,什么是npm(全称Node Package Manager,即node包管理器)?

点击Edit Configurations

配置npm.png

点击添加一个npm

添加npm.png

配置npm参数

参数配置.png

配置成功后,现在我们回到编辑界面基本上就可以装逼了

  • 启动服务

首先,我们可以关闭之前我们用cmd启动的服务,现在改为直接在WebStrom来启动这个服务,如图:

启动服务.png

这个时候我们就可以很容易出现以下错误

错误.png

提示 “Packager can’t listen on port 8081” ,说明 8081 端口被占用,这里有两个 解决方案:

方案一: 可以检查是什么程序占用了这个端口并杀掉它

方案二:修改默认8081端口(记得手机设备端口号对应修改)

  • 方式一:启动服务前,使用如下命令,改变端口号

    react-native start --port 8083
    
  • 方式二:手动修改项目下的node_modules\react-native\local-cli\server\server.js下的方法server.js文件,如下图所示。

修改端口.png

完了过后就可以愉快的启动服务了。

打开IDE中的terminal窗口(切记 不要关闭服务,保持run窗口的数据在跑)
然后,输入命令: react-native run-android 回车安装到手机
这样,通过WebStrom就完成了整个RN程序运行。现在我们就可以开始用代码搞事情了。

搞事情.gif

下面,我都以Android RN程序为例子:
打开index.android.js文件可以修改,然后 react-native run-android重新安装

修改后.png

Load完成后,效果如下:

效果.png
  • WebStrom的代码自动提示配置

1.clone ReactNative-LiveTemplate项目到本地
React Native默认不能智能提示代码,github有一个开源的插件:ReactNative-LiveTemplate开源地址
ReactNative的代码模板,包括:
组件名称
Api 名称
所有StyleSheets属性
Mac中调用ReactNative组件时, 首先 按下 command + J , 然后输入属性名的 首字母 如输入onP 自动提示 onPress, onPressIn, onPressOut, ....

2.添加ReactNative.jar导入到setting

导入setting.png

导入成功后,效果如下:

导入后.png

说明代码智能提示设置导入成功!

2.使用WebStrom+AndroidStudio协作开发
  • WebStrom用做服务端,保持服务开启,并且在WebStrom中可以修改js逻辑代码
  • AndroidStudio可以用于安装APP,和修改Android App原生代码

1.导入RN项目结构中的android到AS中,等待build成功,如下图

AndroidStudio界面.png

2.现在我们可以run来安装APP可以替代 react-native run-android命令

快速运行.png

三、RN学习推荐

如果我的文章有帮助到您,请点个赞,您的鼓励将是我写作的最大动力



作者:码农大表哥
链接:https://www.jianshu.com/p/84fa658f2baa
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native入门系列:创建我的第一个RN Project 的相关文章

  • 域控之DNS转发器

    系统环境 Windows Server 2012 R2 Datacenter 现象 将域环境中的主机的DNS服务器地址指向网关时 访问外网正常 将DNS服务器地址指向指向域控后 可能出现无法访问外网或者访问外网缓慢的现象 原因 1 域控上的
  • Linux/Windows输入的命令太长,不方便查看的解决方法

    Linux Windows输入的命令太长 不方便查看的解决方法 不关是在Linux系统还是在Windows的DOS命令下 如果我们要输入的命令很长 很不方便去查看 解决这一问题的方法就是将一条命令分成几行来写 Linux中 使用符号 如 b
  • R语言第六次课堂小测 高级绘图

    题目1 用lattice画出所要求的的图 数据集 鸢尾花 library lattice attach iris g1 lt xyplot Petal Length Petal Width Species g2 lt xyplot Peta

随机推荐

  • 各种log的加载过程

    1 概述 现在的log框架越来越多 目前我们系统用有使用的包括commons logging log4j slf4j 还有 一个号称更快的logback暂时基本没有用到 而这些log系统又常常依赖于一些jar包顺序和静态配置 导致比较混乱
  • 分号与逗号的区别及举例_顿号和逗号的区别

    顿号和逗号的区别2019 09 24 14 26 33文 宋则贤 顿号和逗号指代不同 顿号是并列的词或词组之间的停顿 逗号把句子切分为意群 表示小于分号大于顿号的停顿 顿号和逗号在用法上也有所不同 一 总的要求 字数较多时 用逗号 字数较少
  • React——路由Route

    文章目录 路由 一 Web 分类 前端渲染与后端渲染 二 Route 介绍 三 安装环境 四 Route 组件介绍 五 Route 组件应用 六 路由的前端渲染 七 url 中传递参数 1 斜杠型参数化路由 2 问号型参数化路由 八 重定向
  • VS2015项目属性配置中的变量设置

    关于VS的项目属性配置 很长时间都没有去细究关于各种定义的意义 比如说 outDir这样的东西以前没有细细追究过原因 这次都一并做个记录 1 常规页签 是对各个变量的解释输出目录 OutDir 中间目录 IntDir 目标文件名 Targe
  • 【个人笔记】一篇搞定js异步输出问题-浅分析(好理解)

    小试牛刀 来几个简单的异步问题引出易错小知识点 一 Promise Question1 new Promise resolve gt console log promise then function console log promise
  • PyQt5-窗口

    分类 在Qt中 生成窗口有三种方式 QWidget QMainWindow QDialog QWidget 控件和窗口的父类 自由度高 什么都东西都没有 没有划分菜单 工具栏 状态栏 主窗口 等区域 import sys from PyQt
  • uint8_t / uint16_t / uint32_t /uint64_t 这些数据类型是什么?

    uint8 t uint16 t uint32 t uint64 t 都是别名 c语言中有哪些数据类型 怎么样取别名 在C语言中有6种基本数据类型 short int long float double char 1 数值类型 1 整型 s
  • 57黑马QT笔记之数据库的语句执行--插入(包括SQL语句的增删改查和复制表结构)

    57黑马QT笔记之数据库的语句执行 插入 概念 1 回滚 也就是我们常见的事务回滚 例如当我要删除某个数据库时 我开启了一个事务 然后再弹出一个对话框给你 是否提交事务 或者作出事务的回滚 也就是说取消了这个删除的操作 并不会执行到删除数据
  • 奇偶排序算法

    在数组中重复两趟扫描 第一趟扫描选择所有的数据项对 a j 和 a j 1 j 是奇数 j 1 3 5 如果它们的关键字的值次序颠倒 就交换它们 第二趟扫描对所有的偶数数据项进行同样的操作 j 0 2 4 6 重复进行这样两趟的排序直到数组
  • 手把手教!搭建自己的免费服务器

    最近总是想搭建自己的网站 奈何皮夹里空空如也 服务器也租不起 更别说域名了 于是我就寻思能否自己搭建个服务器 还不要钱呢 还真行 经过几天的冲浪 我发现有两个免费的建站工具 Apache 和 Nginx 由于两个工具建站方法差不多 所以我就
  • koordinator混部系统实验分享

    简介 官网 https koordinator sh koordinator 是一个基于 qos 的 kubernetes 混合工作负载调度系统 它旨在提高对延迟敏感的工作负载和批处理作业的运行时效率和可靠性 简化与资源相关的配置调整的复杂
  • 安卓apk从浏览器下载后安装提示程序包解析异常处理!

    1 网上的处理一般都是如何适配安卓7 0 解决7 0的适配 而导致包解析异常 这个不多讲 主要说自己遇到的这点 如图 在mainfist配置清单中加上目标版本号和最小版本号即可优美解决
  • Java 判空新写法!干掉 if else !

    在文章的开头 先说下NPE问题 NPE问题就是 我们在开发中经常碰到的NullPointerException 假设我们有两个类 他们的UML类图如下图所示 在这种情况下 有如下代码 user getAddress getProvince
  • html中使行级标签隐藏显示出来,HTML标签显示类型

    HTML标签显示类型 HTML5学堂 码匠 依据HTML标签默认显示效果的不同 可以将HTML5标签简单的分为三大类 需要注意 在实际的分类中 并不仅仅是三类 一类是块状元素 一类是行元素 其他的元素显示类型较多 可以统一归为一类 在各类标
  • “面试造飞机,上岗拧螺丝“?2023软件测试岗面试真题超全面整理(最新版)

    软件测试这个岗位 想要找到一份高薪的工作 离不开繁杂的面试程序 这相信是很多准备应聘软件测试岗的朋友难题 很多已经在职多年的软件测试工程师对于这个岗位面试都谈虎色变 那么 为什么软件测试岗位的面试这么难呢 第一 软件测试属于互联网IT行业
  • 禁止本地中断

    禁止本地CPU中断是确保一组内核语句被当作一个临界区处理的主要机制 这个机制的意义是 即使当硬件设备产生了一个IRQ信号时 中断禁止也让内核控制路径继续执行 因此 这就提供了一种有效的方式 确保内核控制路径中的一些中断处理程序能访问的数据结
  • mes系统和plc通讯案例_MES系统与PLC数据集成主要方式

    现在工业化在迅速的发展 当然在发展过程中是离不开系统和软件的辅助 其中MES系统 ERP软件 PLC数据集成对企业有重要作用 那么MES系统与PLC数据集成主要方式有哪些 方式1 定期抓取数据 因为现在生产设备参数都是模拟量 数值一直在不停
  • CGI详解(原理,配置及访问)

    一 基本原理 CGI 通用网关接口 Common Gateway Interface 是一个Web服务器主机提供信息服务的标准接口 通过CGI接口 Web服务器就能够获取客户端提交的信息 转交给服务器端的CGI程序进行处理 最后返回结果给客
  • Java构造多边形的各点坐标合理性判断并抛出异常

    好久没有发过文章了 今天心情好 分享以下今天的java作业吧 题目要求是 构造多边形 并在点无法构造多边形时抛出对应的异常原因 直接上代码 1 构造点坐标 public class Point public int x y public P
  • React Native入门系列:创建我的第一个RN Project

    一 前言 1 准备 在创建RN之前 我们需要先安装相应的工具和搭建环境 可以参考我上一篇文章 React Native入门系列 如何搭建RN环境 Windows篇 2 目标 本章例子中文章达到目标 创建RN项目步骤 在创建中遇见的问题解决