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等語法,因此熟悉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 identifierVersion、Provisioning ProfileCertificate等配置之外,需要以下操作:

  • 設(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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容