虽然react native出来了很久,但是自己一直因为各种原因没有接触学习,中间尝试过一次,但是因为复杂的环境配置而放弃了。现在,终于因为公司的项目不得不去学习了,当然了,再配置开发环境上面,我还是懵懵的,网上找各种帖子,东拼西凑,还多次询问别人才好不容易把环境搭出来的,但是今天并不是为了说明我是如何搭建环境的,毕竟现在网上帖子太多了,而且自己虽然弄出来了,但是并不懂其中的究竟。所以今天仅仅只是为了纪念自己的第一个demo。

在各种环境配置好了,包括虚拟机配置正常了以后,其实我并不是很清楚应该怎么开始自己的第一个项目,所以也走了很多弯路,下面是自己在各种环境配置好了以后到第一个页面出来的过程。

相比较而言,flutter的环境配置会相对简单很多,这里推荐看另外关于flutter环境配置的随笔,安装完成以后,可以进行查看和开启模拟器。

查看已安装的模拟器

先找到android SDK的安装目录,切换到改目录下面的emulator目录下,执行命令emulator -list-avds

开启模拟器

先找到android SDK的安装目录,切换到改目录下面的emulator目录下,执行命令emulator.exe -netdelay none -netspeed full -avd 模拟器名称

不是很明白为啥会报这个错,只知道需要将emulator文件夹下面的部分内容复制到tools文件夹以后就可以了

需要注意的是,在整个项目运行的过程中,我们刚刚打开的命令行窗口都是不能关闭的,每次项目结束,下一次再开启的时候,有需要执行上面的命令启动虚拟机。

编辑器

网上的帖子最多是用到Android Studio,xcode,Atom。首先,如果需要安装虚拟机,就要安装Android Studio,但也可以用其他的虚拟机,而且后续都是采用命令启动虚拟机,所以根本不会再打开这个软件了,白痴的我之前每次都打开,都在纠结为什么虚拟机的那个图标是灰色的......;其次因为我是用的Windows系统,所以根本用不到xcode;最后就是Atom,至于这种编辑代码的软件,因为我自己不熟悉Atom,所以就选择了vs code,这个的话就是根据自己的喜好选择了。

创建项目

首先要在自己希望的位置生成一个文件夹,用来存放项目,然后再重新开启一个命令行窗口(不能是前面启动虚拟机的那个命令行窗口),定位到相应的文件夹下面,主要是进行盘符切换和目录定位

上面主要是展示了我的项目放在的目录,最后一句是创建一个名称为demo的项目,大概一分钟以后,项目生成完成了,我们可以在相关的目录下查看生成的项目。

之前我一直都不明白为什么我生成的项目里面只有一个index,但是网上看到的项目都是有两个index的,分别是index.android.js和index.ios.js,后来才发现是版本的原因,因为网上的资源都是趋向于有两个index的版本,为了便于自己后期查阅资料,所以,我又重新新建了一个指定版本的项目。

等一分钟以后,新项目创建完成,我们使用自己的编辑器打开项目就可以了。

如果是从svn上面直接剪项目,就不用上面这么麻烦,自己创建项目了,只需要定位到项目的根目录,执行命令下载项目就可以了:npm install

连接虚拟机

项目创建完成以后,需要连接虚拟机,要打开命令行窗口,切换到项目的根目录,先查找模拟器:adb devices

然后再进行连接:react-native run-android

等一会儿以后,项目就跑起来了。

以上命令用于第一次将app装进模拟器,后期重启项目后,该app已经存在了,只需要 查找到模拟器后,执行启动命令就可以了:react-native start

因为我用的是Windows系统,所以默认执行的是index.android.js里面的代码

接下来,我们所有的操作都是围绕着这个文件进行,这些就后续再记录了,下面在简单说一下调试方面的事情,例如我们要更改上面的代码:

这个时候,我们需要再次执行命令行来刷新界面。

此时,模拟机上面会出现弹框,我们点击第一个就可以了。

  

现在,我们的第一个小小的demo就跑起来了。

我的第一个react native的更多相关文章

  1. DECO 一个REACT NAtive 开发IDE工具

    DECO 一个REACT NAtive 开发IDE工具. 目前只支持 OS,NO WINDOWS https://www.decosoftware.com/ 一个方便的快速 ERXPRESS 教程:h ...

  2. 第一个React Native项目

    1>下图操作创建第一个React Native项目: 用Xcode运行界面如下: 记住: 在使用项目文件期间,终端记住不要关闭的哟!!! 改变了程序代码,需要刷新运行,使用快捷键: Comman ...

  3. 我的第一个React Native App

    我用了三天时间实现了一个相对比较完整的React Native 新闻发布类型的示例.应用做得很简单,但大多React Native的组件都有用到,今天做一个分享(由于我电脑是Windows系统,所以只 ...

  4. React Native入门 开发第一个React Native应用

    1. 首先创建一个目录(比如ReactNativeDir),用于存放各个ReactNative工程的代码 2.使用React Native命令工具来创建(初始化)一个ReactNative项目(tes ...

  5. 第一个React Native程序踩到的那些坑

    毫不夸张的说用React Native写一个Hello World !程序是我碰到最复杂的Hello World.网络上的有关的环境搭建相关的文档也很多,但是总是有这样那样的问题. 官方中文版的安装文 ...

  6. 一个资深iOS开发者对于React Native的看法

    一个资深iOS开发者对于React Native的看法 当我第一次尝试ReactNative的时候,我觉得这只是网页开发者涉足原生移动应用领域的歪门邪道.   我认为一个js开发者可以使用javasc ...

  7. [转] 一个资深iOS开发者对于React Native的看法

    当我第一次尝试ReactNative的时候,我觉得这只是网页开发者涉足原生移动应用领域的歪门邪道. 我认为一个js开发者可以使用javascript来构建iPhone应用确实是一件很酷的事情,但是我很 ...

  8. react native 入门 (1)- 环境搭建, 创建第一个Hello World

    Create React Native App 是开始构建新的React Native应用程序的最简单方法.它允许您启动项目而无需安装或配置任何工具来构建本机代码 - 无需安装Xcode或Androi ...

  9. 【React Native开发】React Native For Android环境配置以及第一个实例(1)

    年9月15日也公布了ReactNative for Android,尽管Android版本号的项目公布比較迟,可是也没有阻挡了广大开发人员的热情.能够这样讲在2015年移动平台市场上有两个方向技术研究 ...

随机推荐

  1. (19)模型层 -ORM之msql 跨表查询(正向和反向查询)

    基于对象的跨表查询 基于对象的跨表查询'''正向和反向查询'''# 正向 ----> 关联字段在当前表中,从当前表向外查叫正向# 反向 ---> 关联字段不在当前表中,当当前表向外查叫反向 ...

  2. Stm32L0串口中断接收使用

    最新在做LoRa的项目,使用的是STM32L072和SX1276,需要做一个串口透传模块,刚开始做demo的时候不考虑功耗,所以串口发送和接收直接使用下列函数执行: HAL_UART_Transmit ...

  3. 【UOJ#21】【UR#1】缩进优化

    我好弱啊,什么题都做不出来QAQ 原题: 小O是一个热爱短代码的选手.在缩代码方面,他是一位身经百战的老手.世界各地的OJ上,很多题的最短解答排行榜都有他的身影.这令他感到十分愉悦. 最近,他突然发现 ...

  4. 【spring源码分析】spring ioc容器之前生今世--DefaultListableBeanFactory源码解读

    spring Ioc容器的实现,从根源上是beanfactory,但真正可以作为一个可以独立使用的ioc容器还是DefaultListableBeanFactory,因此可以这么说, DefaultL ...

  5. Nginx学习安装配置和Ftp配置安装

    什么是代理? 什么是正向代理? 什么是反向代理? Nginx与负载均衡有什么联系? 如何在centos7 中安装Nginx-------------安装配置---------------------- ...

  6. SpringJDBC——jdbcTemplate模板

    一.定义 Spring框架对jdbc进行了封装,提供的一个JDBCTemplated对象简化jdbc开发. 使用步骤 1 导包spring-beans-5.0.0-RELEASE.jar,spring ...

  7. day 52 js学习 DOM 和BOM

    前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DO ...

  8. uname command

    The command uname helps us in development special in scripts, see help of the uname uname --help Usa ...

  9. 03C++语言对C的增强——实用性、变量检测、struct类型、C++中所有变量和函数都必须有类型、bool类型、三目运算符

    1.“实用性”增强 C语言中的变量都必须在作用域开始的位置定义,C++中更强调语言的“实用性”,所有的变量都可以在需要使用时再定义. 2.C++对c语言register的增强 register关键字 ...

  10. Promise实例的catch方法

    //Promise.prototype.catch方法是.then(null,rejection)的别名, //用于指定发生错误时的回调函数 //then方法指定的回调函数如果运行时抛出错误,也会被c ...