ReactNative| 開發(fā)環(huán)境的搭建及工程的創(chuàng)建

ReactNative簡介

ReactNative是移動端目前最熱的框架之一, 著力于提高多平臺開發(fā)的開發(fā)效率 —— 僅需學(xué)習(xí)一次,編寫任何平臺。
(Learn once, write anywhere)。Facebook 已經(jīng)在多項產(chǎn)品中使用了React Native,
并且將持續(xù)地投入建設(shè)React Native。React Native 可以通過更新遠端JS,直接更新app, 用 JavaScript 調(diào)起 native 組件
將增強與高性能組件交給 native 來處理 . 相比其他 hybrid (介于webApp和nativeApp之間的混合模式) 框架而言, 
ReactNative并非通過 webview 來調(diào)用原生組件,  而是直接調(diào)用操作系統(tǒng)自帶的 javascriptCore, 所以更高效。

React Native 的優(yōu)點很明顯。官網(wǎng)的醒目位置有簡單介紹,開發(fā)者們也在各種場合做了相關(guān)說明,總結(jié)如下:

- 跨平臺開發(fā)。同一段 Javascript 代碼可以被用于 iOS 和 Android 兩個平臺。
  相比于以前 iOS 和 Android App 各維護一套邏輯大同小異的代碼,React Native 的開發(fā)、測試和維護成本要低很多。

 - 快速編譯。比起 Xcode 中漫長的編譯,React Native 采用了熱加載(Hot Reload)的即時編譯機制,
  使得 App UI 的開發(fā)體驗大幅改善,幾乎到了和網(wǎng)頁開發(fā)一樣隨改隨變的效果。

- 快速發(fā)布。通過 JSBundle,React Native 可以即時更新 App。相比原來冗長的審核和上傳過程,
  發(fā)布和測試新功能的效率大幅提高。

- 渲染和布局更加高效。React Native 可以直接套用網(wǎng)頁開發(fā)的 CSS 和 flex 機制,
  擺脫了 autolayout 和 frame 布局中繁瑣的數(shù)學(xué)計算,更加直接簡便。

- 簡單易學(xué)。相比于 iOS 和 Android 的一整套復(fù)雜的知識體系,React Native 從本質(zhì)上來講就是狀態(tài)機,
  對于開發(fā)者來講理解不難,且實際操作可謂入門容易、上手輕松。如果是前端開發(fā)者,
  那么對于 Javascript 本來就有相應(yīng)了解,用 React Native 開發(fā)手機應(yīng)用更是水到渠成。

當(dāng)然,看上去很完美的 React Native 在技術(shù)上也有諸多風(fēng)險,比如:

- 第三方依賴。React Native 嚴重依賴于 Facebook 的維護。
  蘋果在 iOS 上每次技術(shù)的更新、政策的改變都會讓原來使用了 React Native 代碼庫受到影響,
  等待 Facebook 和社區(qū)的修復(fù)會妨礙 App 的更新和用戶體驗。前段時間,
  百度和開發(fā)者們棄用React Native 而迫使的 Facebook 修改開發(fā)者權(quán)限(License)事件,
  證明了開發(fā)依賴于第三方的風(fēng)險確實存在。

- 邏輯上的額外開銷。直到今天, React Native 依然只是0.49版本,僅僅支持簡單的 UI 制作,
  其不成熟的 API 連復(fù)雜的動畫都難以實現(xiàn),更別提 iOS 的底層優(yōu)化和兼容操作。同時因為操作系統(tǒng)和設(shè)備的不同,
  React Native 得分別進行針對性處理,這對代碼庫的維護又是一個挑戰(zhàn)。

- 聯(lián)調(diào)的困難。對于原生的 iOS 和 Android App 引入 React Native,會增加整個代碼庫的復(fù)雜度,
  在深入底層原生代碼進行 debug 時也是困難重重,可以說是在開發(fā)和維護上的成本都有所增加。


  硅谷對于 React Native 也普遍持保守態(tài)度,采用 React Native的科技巨頭也只有 
  Facebook,Amazon,Uber,Airbnb 四家,而且都是局部小功能、小App采用。

個人認為,只有在快速開發(fā)、節(jié)約成本的考慮之下,React Native 才能發(fā)揮出巨大的優(yōu)勢。
原因很簡單,可以不再忍受新版本的漫長的審核期,可以從服務(wù)器動態(tài)更新JavaScript代碼來實現(xiàn)應(yīng)用的更新。
對于 iOS 開發(fā)者,React Native 只可作為適當(dāng)補充。

搭建React Native環(huán)境

1.安裝Node.js
  • 點擊 nodejs官網(wǎng)

    下載最新版的Node.js后,一步一步安裝即可。注意下載后的文件為 pkg 文件而不是 dmg。
2.安裝Watchman

Watchman 是 facebook 的一個開源項目,它開源用來監(jiān)視文件并且記錄文件的改動情況,
當(dāng)文件變更它可以觸發(fā)一些操作,例如執(zhí)行一些命令等等。

brew install watchman
3 安裝flow

flow用于類型檢查

brew install flow
4.安裝React Native

如果安裝時間比較長的話,可以使用淘寶鏡像.具體的可以自行百度,
我安裝的時候沒有使用VPN,自身的網(wǎng)絡(luò)也不是光纖,幾分鐘就OK了。

sudo npm install -g react-native-cli

5.使用NVM管理Node.js版本

如果需要經(jīng)常切換Node.js版本,建議使用NVM管理Node.js版本.
直接使用git clone命令,隨后執(zhí)行下面兩個命令即可臨時使用nvm命令。

git clone  https://github.com/creationix/nvm.git
cd nvm
source nvm.sh

創(chuàng)建項目

搭建好RN環(huán)境以后,我們來創(chuàng)建一個HelloWorld項目。

1. 首先在桌面上創(chuàng)建一個名為 rn_demo 的文件夾

2. 在終端進入創(chuàng)建的文件夾 (cd)

3. 創(chuàng)建項目

react-native init HelloWord

創(chuàng)建完成后會出現(xiàn)紅色的文件,AppDelegate 里面可能也會報錯,但是沒關(guān)系,運行下就可以了,并且運行后會開啟一個終端,不用管,也不要關(guān)閉。

不出意外,你可以看到下面的畫面:

4.修改App.js文件:

使用SublimeText打開App.js文件, 隨意改一下fontSize或者margin之類的,然后 cmd+s 保存修改,
然后選中你的模擬器,CMD + R即可直接刷新.這就說明,我們修改JavaScript文件生效了.


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,484評論 2 379

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