React Native(Get Started)

背景

React Native(以后簡(jiǎn)稱RN)是Facebook2015年4月開源的跨平臺(tái)移動(dòng)應(yīng)用框架∨捌铮口號(hào)是:Learn once,write anywhere. 主要使用JavaScript赎线、React廷没、ES6、JSX等語(yǔ)法垂寥,因此熟悉Web前端開發(fā)的技術(shù)人員只需很少的學(xué)習(xí)就可以進(jìn)入移動(dòng)應(yīng)用開發(fā)領(lǐng)域颠黎。

特性

優(yōu)點(diǎn)

1.跨平臺(tái)
2.熱更新
3.代碼復(fù)用
4.節(jié)省開發(fā)人力
4.……etc.

缺點(diǎn)

1.學(xué)習(xí)成本
2.安裝包大
3.首次運(yùn)行耗時(shí)
4.……ect.

說那些都沒用,就問你要不要用吧

開始干吧

1.搭建環(huán)境

安裝Homebrew

Homebrew是Mac下的系統(tǒng)安裝包工具矫废,相信很多iOS開發(fā)同學(xué)都已經(jīng)裝過這個(gè)了盏缤,裝過的可以跳過此步。沒有的使用下面代碼就行
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
其中如果碰到讀寫權(quán)限問題可以修改權(quán)限之后重新安裝
sudo chown -R`whoami`/usr/local

安裝Node

使用Homebrew安裝Node.js蓖扑,安裝最新版就完了
brew install node
使用過Cocoapods的同學(xué)都知道在安裝完之后要修改下鏡像地址的唉铜,至于為啥相信大家心里都有點(diǎn)B數(shù)的。同樣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的命令行工具,主要執(zhí)行創(chuàng)建柜去、初始化灰嫉、更新、運(yùn)行嗓奢、打包等任務(wù)讼撒。
npm install -g yarn react-native-cli
當(dāng)然大家都懂的
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global

Xcode

這玩意相信大家都有安裝了,有一點(diǎn)就是需要8.0及以上版本股耽。大家可以去App Store下載安裝最新版的使用根盒。最好不要去其他三方地方下載,去年那一撥ghost相信大家也都知道物蝙。


到這里必須工具基本安裝完了炎滞,足夠進(jìn)行開發(fā)了。但是本著簡(jiǎn)單省力的原則還是安裝下面這些:

2.推薦安裝

Watchman

Watchman是由Facebook提供的監(jiān)視文件系統(tǒng)變更的工具诬乞。安裝此工具可以提高開發(fā)時(shí)的性能(packager可以快速捕捉文件的變化從而實(shí)現(xiàn)實(shí)時(shí)刷新)册赛。
一句話就是:開發(fā)的時(shí)候,修改代碼之后不用重新編譯運(yùn)行整個(gè)程序了震嫉,只需要cmd+R就可以馬上刷新了森瘪。沒錯(cuò),就是有這種操作票堵。
安裝最新版watchman:
brew install watchman

Webstorm

Webstorm,裝這個(gè)干嘛扼睬?當(dāng)然是用來編寫RN了!什么换衬,用Xcode痰驱?額证芭。。担映。你還可以用txt废士。
Webstorm是收費(fèi)軟件,大家可以支持正版蝇完,也可以***官硝,恩恩。

3.測(cè)試項(xiàng)目

構(gòu)建項(xiàng)目

我們需要利用命令來創(chuàng)建項(xiàng)目短蜕,并不是傳統(tǒng)的利用XCode直接創(chuàng)建
首先命令進(jìn)入到目標(biāo)文件夾氢架,我們假如工程放在首頁(yè)
cd ~/Desktop
然后就可以執(zhí)行RN命令了
react-native init RNProj 注:首次有可能會(huì)比較慢,還是耐心等吧朋魔,畢竟我們都得用到新版本岖研。

react-native init RNProj

react-native init RNProj結(jié)果

這里RN項(xiàng)目就創(chuàng)建成功了,文件結(jié)構(gòu)如下:
RN項(xiàng)目目錄結(jié)構(gòu)

運(yùn)行項(xiàng)目

從上圖react-native init RNProj結(jié)果中可以看到要運(yùn)行對(duì)應(yīng)的項(xiàng)目可以有兩種方式:

  • 命令運(yùn)行
    cd /Users/xxx/Desktop/RNProj也就是cd到RN項(xiàng)目文件夾
    react-native run-ios 運(yùn)行RN項(xiàng)目的iOS版本
  • 直接到RN項(xiàng)目文件夾->iOS->xxx.xcodeproj警检,用XCode打開像傳統(tǒng)的運(yùn)行一樣點(diǎn)擊RUN按鈕就可以
    首次運(yùn)行會(huì)比較慢孙援,可以通過命令行看到都進(jìn)行了哪些操作
    運(yùn)行成功后會(huì)另打開一個(gè)終端窗口來運(yùn)行packager在8081端口,如下:
    packager window.png

    iOS模擬器會(huì)啟動(dòng)并運(yùn)行扇雕,顯示如下:
    首次運(yùn)行RN-iOS.png

Hello World

選擇自己稀罕的IDE打開index.ios.js文件:

index.ios.js內(nèi)容截圖.js內(nèi)容截圖

圖中標(biāo)注部分與模擬器上顯示內(nèi)容對(duì)應(yīng)拓售。那我們就在這個(gè)基礎(chǔ)上對(duì)其進(jìn)行修改。

  • 首先我們需要為Hello World定制一個(gè)Style镶奉。在index.ios.js文件下部分的styles里面添加:
hello: {
  fontSize: 30,
  textAlign: 'center',
  margin: 20,
  marginBottom: 50,
  color: '#54FF54',
 },
  • 然后我們?cè)谏厦娼貓D位置添加:
<Text style={styles.hello}>
      Hello Wrold!
</Text>
Hello World 修改
  • 最后我們選擇iOS模擬器础淤,cmd + R bingo!模擬器就刷新啦哨苛,顯示結(jié)果如下:
    Hello World 運(yùn)行
驚不驚喜鸽凶,刺不刺激,意不意外

注:我們可以在選擇iOS模擬器時(shí)使用cmd + D來打開開發(fā)者界面進(jìn)行Reload等操作

開發(fā)者界面

真機(jī)調(diào)試

除了在XCode中進(jìn)行正常的Bundle identifier移国、Version吱瘩、Provisioning Profile道伟、Certificate等配置之外迹缀,需要以下操作:

  • 設(shè)備必須通過USB連接電腦
  • 設(shè)備和電腦處于同一WiFi網(wǎng)絡(luò)
  • XCode選擇設(shè)備,點(diǎn)擊運(yùn)行按鈕即可
    如果你需要在真機(jī)上啟用調(diào)試功能蜜徽,則需要打開RCTWebSocketExecutor.m文件(位置RNProj/node_modules/react-native/Libraries/WebSocket/RCTWebSocketExecutor.m)祝懂,然后將其中的"localhost"改為你的電腦的IP地址,最后啟用開發(fā)者菜單中的"Debug JS Remotely"選項(xiàng)拘鞋。

完事

到這里我們已經(jīng)成功的創(chuàng)建了一個(gè)基于RN的工程砚蓬,并實(shí)現(xiàn)了運(yùn)行,修改盆色。后續(xù)會(huì)繼續(xù)跟進(jìn)RN的持續(xù)開發(fā)灰蛙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末祟剔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子摩梧,更是在濱河造成了極大的恐慌物延,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仅父,死亡現(xiàn)場(chǎng)離奇詭異叛薯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)笙纤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門耗溜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人省容,你說我怎么就攤上這事抖拴。” “怎么了腥椒?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵城舞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我寞酿,道長(zhǎng)家夺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任伐弹,我火速辦了婚禮拉馋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惨好。我一直安慰自己煌茴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布日川。 她就那樣靜靜地躺著蔓腐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪龄句。 梳的紋絲不亂的頭發(fā)上回论,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音分歇,去河邊找鬼傀蓉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛职抡,可吹牛的內(nèi)容都是我干的葬燎。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼谱净!你這毒婦竟也來了窑邦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤壕探,失蹤者是張志新(化名)和其女友劉穎奕翔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浩蓉,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡派继,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捻艳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驾窟。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖认轨,靈堂內(nèi)的尸體忽然破棺而出绅络,到底是詐尸還是另有隱情,我是刑警寧澤嘁字,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布恩急,位于F島的核電站,受9級(jí)特大地震影響纪蜒,放射性物質(zhì)發(fā)生泄漏衷恭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一纯续、第九天 我趴在偏房一處隱蔽的房頂上張望随珠。 院中可真熱鬧,春花似錦猬错、人聲如沸窗看。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)显沈。三九已至,卻和暖如春逢唤,著一層夾襖步出監(jiān)牢的瞬間拉讯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工智玻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留遂唧,地道東北人芙代。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓吊奢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子页滚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容