一、CRNA
开发React Native时主要有两种创建方式
1. CRNA
create-react-native-app demo
2. INIT
react-native init demo
我们先来看看两种不一样的方式创建出来的项目有什么不一样

INIT:

最直观的就是使用CRNA初始化的项目不再分Android文件夹跟ios文件夹了。
只要在CRNA的命令中输入
expo eject
你的项目就会开始反编译(不知道这个词恰不恰当),等待eject完成之后,再看看你的项目目录

是不是感觉跟INIT出来的项目目录差不多?
其实可以将CRNA看作是INIT的封装版,它将一些脚本和工具都封装起来,当你运行了eject命令之后,就会将封装在里面的文件都反编译出来,这样你就可以获得某些文件的控制权了(同理还有创建react项目时的脚手架:create-react-app,只有eject之后你才可以配置webpack)
二、expo
那用CRNA初始化的项目有什么好处?那就是除了使用模拟器运行之外,还可以使用我们接下来要介绍的工具——expo,进行预览项目。
下载(https://expo.io/tools)

记得点红圈圈内的链接,下面的链接需要FQ才可以下载,而且还要注册谷歌账号,比较麻烦
下完之后装到手机上,在CRNA项目的命令行输入
npm start
等待跳出二维码,然后打开手机的expo,扫描屏幕的二维码,就可以在你的手机查看项目了,是不是感觉很方便
三、必看注意项
1.
在使用expo预览项目时,请确保你的电脑和手机处于同一wifi网络下(手机开热点给电脑,或者反过来)
2.
在你按照步骤扫描二维码后,很大几率在手机上会遇到这个错误:
Something went wrong.
can not load app exp://....(ip地址)
这是因为expo默认选择以太网适配器,而电脑和手机是在wifi下连接的,因此需要手动将ip地址改成无线网络适配器(你也可以先打开终端输入ipconfig,看看显示错误的那个ip地址是不是跟无线网络适配器的ip地址不同),在项目命令行输入
windows系统:
set REACT_NATIVE_PACKAGER_HOSTNAME='无线适配器的ip'
ios或linux系统:
REACT_NATIVE_PACKAGER_HOSTNAME='无线适配器的ip'
现在再运行一下就可以顺利在手机预览你的项目了
网友评论