React-Native 筆記-嵌入到現(xiàn)有原生應(yīng)用

IDE

  • Atom + Nuclide + atom-react-native-automcomplete
  • 自定義幾個(gè) snippets吩抓,比如創(chuàng)建相應(yīng)類型的 class 等

集成到現(xiàn)有項(xiàng)目

基礎(chǔ)環(huán)境需求
依賴包

React Native的植入過程同時(shí)需要ReactReact Native兩個(gè)node依賴包。

具體的依賴包記錄在package.json文件中白对。如果項(xiàng)目根目錄中沒有這個(gè)文件,那就自己創(chuàng)建一個(gè)葵第。

對(duì)于一個(gè)典型的React Native項(xiàng)目來說鳍咱,一般package.jsonindex.ios.js等文件會(huì)放在項(xiàng)目的根目錄下绒极。而iOS相關(guān)的原生代碼會(huì)放在一個(gè)名為ios/的子目錄中,這里也同時(shí)放著你的Xcode項(xiàng)目文件(.xcodeproj)馅笙。

下面是一package.json的示例:

{
  "name": "NumberTileGame",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start"
  },
  "dependencies": {
    "react": "15.4.1",
    "react-native": "0.39.2"
  }
}

示例中的version字段沒有太大意義(除非你要把你的項(xiàng)目發(fā)布到npm倉庫)。scripts中是用于啟動(dòng)packager服務(wù)的命令厉亏。dependencies中的react和react-native的版本取決于你的具體需求董习。一般來說我們推薦使用最新版本。你可以使用npm info react和npm info react-native來查看當(dāng)前的最新版本爱只。另外皿淋,react-native對(duì)react的版本有嚴(yán)格要求,高于或低于某個(gè)范圍都不可以恬试。本文無法在這里列出所有react native和對(duì)應(yīng)的react版本要求窝趣,只能提醒讀者先嘗試執(zhí)行npm install,然后注意觀察安裝過程中的報(bào)錯(cuò)信息忘渔,例如require react@某.某.某版本, but none was installed高帖,然后根據(jù)這樣的提示,執(zhí)行npm i -S react@某.某.某版本畦粮。

安裝依賴包

在包含有package.json文件的目錄(一般也就是項(xiàng)目根目錄)中運(yùn)行下列命令來安裝:

$ npm install
Podfile

React Native框架:
React Native框架整體是作為node模塊安裝到項(xiàng)目中的散址。下一步我們需要在CocoaPods的Podfile中指定我們所需要使用的組件.

Subspecs
在你開始把React Native植入到你的應(yīng)用中之前,首先要決定具體整合的是React Native框架中的哪些部分宣赔。而這就是subspec
要做的工作预麸。在創(chuàng)建Podfile文件的時(shí)候,需要指定具體安裝哪些React Native的依賴庫儒将。所指定的每一個(gè)庫就稱為一個(gè)subspec吏祸。可用的subspec都列在node_modules/react-native/React.podspec中钩蚊,基本都是按其功能命名的贡翘。一般來說你首先需要添加Core,這一subspec包含了必須的AppRegistry砰逻、StyleSheet鸣驱、View以及其他的一些React Native核心庫。如果你想使用React Native的Text庫(即<Text>組件)蝠咆,那就需要添加RCTText的subspec踊东。同理,Image需要加入RCTImage刚操,等等闸翅。

  • 創(chuàng)建 Podfile
## 在iOS原生代碼所在的目錄中(也就是`.xcodeproj`文件所在的目錄)執(zhí)行:
$ pod init
  • Podfile 內(nèi)容
# target的名字一般與你的項(xiàng)目名字相同
target 'NumberTileGame' do

  # 'node_modules'目錄一般位于根目錄中
  # 但是如果你的結(jié)構(gòu)不同,那你就要根據(jù)實(shí)際路徑修改下面的`:path`
  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'RCTText',
    'RCTNetwork',
    'RCTWebSocket', # 這個(gè)模塊是用于調(diào)試功能的
    # 在這里繼續(xù)添加你所需要的模塊
  ]
  # 如果你的RN版本 >= 0.42.0菊霜,請(qǐng)加入下面這行
  pod "Yoga", :path => "../node_modules/react-native/ReactCommon/yoga"

end

添加完需要的內(nèi)容后就可以執(zhí)行 pod install 了坚冀。

踩到的坑

項(xiàng)目環(huán)境:xcode V8.2.1 + iOS8.0
react: V15.4.1
react-native: V0.42.0

pod install 后 編譯失敗:

報(bào)類似錯(cuò)誤的還有一個(gè)文件鉴逞。

我的改法, 改成下面這樣遗菠,類似都這樣改联喘,修改后編譯通過:

#import "JavaScriptCore.h"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辙纬,隨后出現(xiàn)的幾起案子豁遭,更是在濱河造成了極大的恐慌,老刑警劉巖贺拣,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓖谢,死亡現(xiàn)場離奇詭異,居然都是意外死亡譬涡,警方通過查閱死者的電腦和手機(jī)闪幽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涡匀,“玉大人盯腌,你說我怎么就攤上這事≡纱瘢” “怎么了腕够?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舌劳。 經(jīng)常有香客問我帚湘,道長,這世上最難降的妖魔是什么甚淡? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任大诸,我火速辦了婚禮,結(jié)果婚禮上贯卦,老公的妹妹穿的比我還像新娘资柔。我一直安慰自己,他們只是感情好撵割,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布讨越。 她就那樣靜靜地躺著茵乱,像睡著了一般私植。 火紅的嫁衣襯著肌膚如雪艘蹋。 梳的紋絲不亂的頭發(fā)上沸手,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天外遇,我揣著相機(jī)與錄音,去河邊找鬼契吉。 笑死跳仿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的捐晶。 我是一名探鬼主播菲语,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼妄辩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了山上?” 一聲冷哼從身側(cè)響起眼耀,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎佩憾,沒想到半個(gè)月后哮伟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妄帘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年楞黄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抡驼。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鬼廓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出致盟,到底是詐尸還是另有隱情碎税,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布勾邦,位于F島的核電站蚣录,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏眷篇。R本人自食惡果不足惜萎河,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蕉饼。 院中可真熱鬧虐杯,春花似錦、人聲如沸昧港。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽创肥。三九已至达舒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叹侄,已是汗流浹背巩搏。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趾代,地道東北人贯底。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像撒强,于是被迫代替她去往敵國和親禽捆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子笙什,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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