React Native(Get Started)

背景

React Native(以后简称RN)是Facebook2015年4月开源的跨平台移动应用框架。口号是:Learn once,write anywhere. 主要使用JavaScript、React、ES6、JSX等语法,因此熟悉Web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域。

特性

优点

1.跨平台
2.热更新
3.代码复用
4.节省开发人力
4.……etc.

缺点

1.学习成本
2.安装包大
3.首次运行耗时
4.……ect.

说那些都没用,就问你要不要用吧

开始干吧

1.搭建环境

安装Homebrew

Homebrew是Mac下的系统安装包工具,相信很多iOS开发同学都已经装过这个了,装过的可以跳过此步。没有的使用下面代码就行
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
其中如果碰到读写权限问题可以修改权限之后重新安装
sudo chown -R`whoami`/usr/local

安装Node

使用Homebrew安装Node.js,安装最新版就完了
brew install node
使用过Cocoapods的同学都知道在安装完之后要修改下镜像地址的,至于为啥相信大家心里都有点B数的。同样Node也需要
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global

安装Yarn、react-native-cli

Yarn是Facebook提供的替代npm的工具用来加速node下载。react-native-cli是RN的命令行工具,主要执行创建、初始化、更新、运行、打包等任务。
npm install -g yarn react-native-cli
当然大家都懂的
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global

Xcode

这玩意相信大家都有安装了,有一点就是需要8.0及以上版本。大家可以去App Store下载安装最新版的使用。最好不要去其他三方地方下载,去年那一拨ghost相信大家也都知道。


到这里必须工具基本安装完了,足够进行开发了。但是本着简单省力的原则还是安装下面这些:

2.推荐安装

Watchman

Watchman是由Facebook提供的监视文件系统变更的工具。安装此工具可以提高开发时的性能(packager可以快速捕捉文件的变化从而实现实时刷新)。
一句话就是:开发的时候,修改代码之后不用重新编译运行整个程序了,只需要cmd+R就可以马上刷新了。没错,就是有这种操作。
安装最新版watchman:
brew install watchman

Webstorm

Webstorm,装这个干嘛?当然是用来编写RN了!什么,用Xcode?额。。。你还可以用txt。
Webstorm是收费软件,大家可以支持正版,也可以***,恩恩。

3.测试项目

构建项目

我们需要利用命令来创建项目,并不是传统的利用XCode直接创建
首先命令进入到目标文件夹,我们假如工程放在首页
cd ~/Desktop
然后就可以执行RN命令了
react-native init RNProj 注:首次有可能会比较慢,还是耐心等吧,毕竟我们都得用到新版本。

react-native init RNProj

react-native init RNProj结果

这里RN项目就创建成功了,文件结构如下:
RN项目目录结构

运行项目

从上图react-native init RNProj结果中可以看到要运行对应的项目可以有两种方式:

  • 命令运行
    cd /Users/xxx/Desktop/RNProj也就是cd到RN项目文件夹
    react-native run-ios 运行RN项目的iOS版本
  • 直接到RN项目文件夹->iOS->xxx.xcodeproj,用XCode打开像传统的运行一样点击RUN按钮就可以
    首次运行会比较慢,可以通过命令行看到都进行了哪些操作
    运行成功后会另打开一个终端窗口来运行packager在8081端口,如下:
    packager window.png

    iOS模拟器会启动并运行,显示如下:
    首次运行RN-iOS.png

Hello World

选择自己稀罕的IDE打开index.ios.js文件:

index.ios.js内容截图.js内容截图

图中标注部分与模拟器上显示内容对应。那我们就在这个基础上对其进行修改。

  • 首先我们需要为Hello World定制一个Style。在index.ios.js文件下部分的styles里面添加:
hello: {
  fontSize: 30,
  textAlign: 'center',
  margin: 20,
  marginBottom: 50,
  color: '#54FF54',
 },
  • 然后我们在上面截图位置添加:
<Text style={styles.hello}>
      Hello Wrold!
</Text>
Hello World 修改
  • 最后我们选择iOS模拟器,cmd + R bingo!模拟器就刷新啦,显示结果如下:
    Hello World 运行
惊不惊喜,刺不刺激,意不意外

注:我们可以在选择iOS模拟器时使用cmd + D来打开开发者界面进行Reload等操作

开发者界面

真机调试

除了在XCode中进行正常的Bundle identifierVersionProvisioning ProfileCertificate等配置之外,需要以下操作:

  • 设备必须通过USB连接电脑
  • 设备和电脑处于同一WiFi网络
  • XCode选择设备,点击运行按钮即可
    如果你需要在真机上启用调试功能,则需要打开RCTWebSocketExecutor.m文件(位置RNProj/node_modules/react-native/Libraries/WebSocket/RCTWebSocketExecutor.m),然后将其中的"localhost"改为你的电脑的IP地址,最后启用开发者菜单中的"Debug JS Remotely"选项。

完事

到这里我们已经成功的创建了一个基于RN的工程,并实现了运行,修改。后续会继续跟进RN的持续开发。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容