Facebook React Native 配置小结
2015 年 9 月 15 号,React Native for Android 发布。至此,React 基本完成了对多端的支持。基于 React / React Native 可以:
H5, Android, iOS 多端代码复用
实时热部署
目前使用 React Native 开发只能在 Mac 系统 上进行。所以配置都是基于Mac os.
环境配置
首先需要安装的有:
Homebrew(brew):
Homebrew 是 Mac 中的一个安装包管理器。没有安装的话,点击这里安装 我的版本如下:
bogon:~ weichunsheng$ brew -v
Homebrew 0.9.5 (git revision 8017; last commit 2015-10-03)
bogon:~ weichunsheng$
版本过低将会导致无法安装后续几个组件。可用 brew update
升级。
Node.js 需要 4.0
及其以上版本。安装好之后,npm 也有了。
nvm 是 Node.js 的版本管理器,可以轻松安装各个版本的 Node.js 版本。
brew install nvm
或者 按照这里的方法 安装。
然后安装 Node.js:
nvm install node && nvm alias default node
也可以直接下载安装 Node.js: https://nodejs.org/en/download/
这两个包分别是监控文件变化和类型检查的。安装如下:
brew install watchman
brew install flow
安装 React-Native
通过 npm 安装即可:
npm install -g react-native-cli
APP 开发环境的设置
iOS
XCode 6.3 及其以上即可。
Android
这个比较麻烦。
设置环境变量:ANDROID_HOME
export ANDROID_HOME=/usr/local/opt/android-sdk
SDK Manager 安装以下包:
Android SDK Build-tools version 23.0.1
Android 6.0 (API 23)
Android Support Repository
配置完毕。
初始化第一个hello world项目
文档提到:
react-native init x 项目名称
等待一段时间之后(具体视网络情况而定)时间比较长,项目初始化完成。
进入到项目目录:
cd 项目名称
运行: ls -l
total 24
drwxr-xr-x 14 srain staff 476 Sep 21 09:52 android
-rw-r--r-- 1 srain staff 1023 Sep 21 11:47 index.android.js
-rw-r--r-- 1 srain staff 1065 Sep 20 11:58 index.ios.js
drwxr-xr-x 6 srain staff 204 Sep 20 11:58 ios
drwxr-xr-x 5 srain staff 170 Sep 21 10:31 node_modules
-rw-r--r-- 1 srain staff 209 Sep 20 11:58 package.json
其中 android
和 ios
中分别为两个平台的项目文件。index.android.js
和 index.ios.js
为两个页面对应的 js 文件。
运行项目
不管是 iOS 还是 Android,在开发调试阶段,都需要在 Mac 上启动一个 HTTP 服务,称为`Debug Server`,默认运行在 8081 端口,APP 通 Debug Server 加载 js。 iOS 和 Android 的模拟器,连接 Mac 本机的服务都很方便。但是通过 USB 或者 Wifi 连接调试,就稍微麻烦一些了。
IOS
还是非常简单,XCode 打开项目,点击运行就好。修改 index.ios.js
, 在模拟器中 ⌘ + R
重新载入 js 即可看到相应的变化。
iOS 真机调试也简单,修改HTTP地址即可。
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];
Android
按照官方文档,需要一个模拟器(Genymotion模拟器也可以)。但是不像 iOS,Android 开发平时更多是直接用真机进行开发和调试,如何运行部署到真机。
运行命令
react-native run-android
然后就会部署到模拟器,修改 index.android.js
,调出模拟器菜单键,选择重新载入 js 即可看到变化。
示例 APP 直接部署到真机,红色界面报错,无法连接到 Debug Server。
如果是 5.0 或者以上机型,可通过 adb 反向代理端口,将 Mac 端口反向代理到测试机上。
adb reverse tcp:8081 tcp:8081
如果 5.0 以下机器,应用安装到测试机上之后,摇动设备,在弹出菜单中选择 Dev Setting > Debug Server host for device,然后填入 Mac 的 IP 地址
在 Android Studio 中调试开发
在 Android Studio 打开项目,然后编译部署到真机。
这个时候,在命令行启动 Debug Server 即可:
react-native start
官方文档:https://facebook.github.io/react-native/docs/getting-started.html#content
参考:http://www.liaohuqiu.net/cn/posts/react-native-1/
https://github.com/creationix/nvm#installation
http://www.jianshu.com/p/cd2a8c5ee1c7
http://wiki.jikexueyuan.com/project/react-native/NativeComponentsAndroid.html
http://www.tuicool.com/articles/V3U3UbU
Facebook React Native 配置小结的更多相关文章
- 【React Native开发】React Native配置执行官方样例-刚開始学习的人的福音(8)
),React Native技术交流4群(458982758),请不要反复加群! 欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文 ...
- react native配置ip真机测试
首先保证真机和pc 保证在同一个网络下 根据红色错误判断自己是什么情况 例如 提示无法连接远程服务,说明你的不在同一网络下 提示500 可能配置的ip不对 设置ip方法 摇晃手机 ---> De ...
- 【React Native开发】React Native For Android环境配置以及第一个实例(1)
年9月15日也公布了ReactNative for Android,尽管Android版本号的项目公布比較迟,可是也没有阻挡了广大开发人员的热情.能够这样讲在2015年移动平台市场上有两个方向技术研究 ...
- React Native 之极光推送jpush-react-native 手把手配置
这是 react native 配置极光推送使用的组件,比较常用https://github.com/jpush/jpush-react-native 先把组件地址贴出来,方便大家使用参考.如果这个大 ...
- React Native初探
前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...
- React Native指南汇集了各类react-native学习资源、开源App和组件
来自:https://github.com/ele828/react-native-guide React Native指南汇集了各类react-native学习资源.开源App和组件 React-N ...
- React Native专题
转载注明出处:地址:http://www.lcode.org本文出自:[江清清的技术专栏]本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶 ...
- React Native专题-江清清
本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶相关讲解. 刚创建的React Native交流8群:533435865 欢迎各位大牛, ...
- windows安装React Native开发运行环境
React Native是什么 React Native是facebook开源的一个用于开发app的框架.React Native的设计理念:既拥有Native (原生) 的用户体验.又保留React ...
随机推荐
- javascript模式——Prototype模式
GoF权威的解释是,原型模式是一种通过对一个对象的克隆,创建基于这个对象的多种对象的模式. 为了实现这种原型模式,可以直接使用ECMAScript 5 中的方法Object.create.它不紧可以创 ...
- SVG-1
<rect>矩形 <circle>圆 <ellipse>椭圆 <line>直线 <polyline>折线 <polygon>标签 ...
- sql生成20位数随机数
declare @rnd nvarchar(50)set @rnd =''while LEN(@rnd)<20 begin set @rnd =@rnd + REPLACE ( CONVERT( ...
- sqlserver高版本到低版本迁移
从SqlServer2014 备份bak文件,在SqlServer2012中还原时遇到版本不兼容的问题. 经过leader 指导,可尝试以下办法处理数据迁移.共分三个步骤: 一.对需要迁移数据库生成s ...
- Nodejs随笔(三):全局对象之global
首先,进入node REPL: mesogene@mesogene-team:~$ node > 查看global对象,发现其他全局对象(包括Buffer.require对象)以及全局方法都包含 ...
- C# 3循环 for语句
循环:可以反复执行某段代码,直到不满足循环条件为止. 一.循环的四要素:初始条件.循环条件.状态改变.循环体. 1.初始条件:循环最开始的状态. 2.循环条件:在什么条件下进行循环,不满足此条件,则循 ...
- 接触CrackMe 第一个
今天刚接触这个 做了一个简单的. 用Onlydbg加载之后,对GetDlgItemTextA函数下断点,因为程序是在控件上获取数据的. Register输入Name和Serial点击Ok之后,断点响应 ...
- Android _优雅实现元素间的分割线 (支持3.0以下)
转:http://blog.csdn.net/lmj623565791/article/details/42407923 1.概述 话说,随着Android SDK版本的升级,很多控件增加了新的属性方 ...
- SQL Server 查看对象之间的引用关系
前期准备: use studioA; go create table T(X int,Y int); insert into T(X,Y) values(1,1),(2,2); ...
- SQL Server 数据库状态选项
选项 1. single_user(单用户),multi_user(多用户),restricted_user(受限用户); 描述数据库的用户访问属性,它们互斥,设置其中任何一个选项就会取消对其它选项的 ...