文章首發於簡書,歡迎關注html
隨着科技的發展,手機開發也在向好的方向不停的轉變。IOS和Android兩大手機操做橫空出世,稱霸江湖。咱們每開發一個手機軟件最少都須要開發這兩個終端。
兩大操做系統都在不斷的提高完善,能力愈來愈強大,這對於咱們開發者是好事,由於用智能手機的用戶愈來愈多。react
話天下大事,分久必合,合久必分。這句話對於移動開發也是同樣的。
這幾年來,移動應用開發者作夢都但願有一個能跨平臺的開發工具,讓他們不要把同一個移動應用使用不一樣的開發語言寫兩遍。但跨平臺開發工具的實現很難,直到Facebook開源了React Native.es6
要想學習React Native首先了解上面三個概念和之間的聯繫。
1. React 是基礎框架,提供了一套基礎設計實現理念,並不能直接用來開發,就比如馬克思主義對於我黨的做用同樣。
2. React.js 是在React理念的指導下產生的專門用來開發網頁的框架.與React同時出現和發展,React的相關概念都在React.js文檔中。
3. React Native 是用來開發移動應用。須要用到React概念,可是不須要React.js的東西。編程
使用React Native開發,既擁有Native的良好人機交互體驗,又保留了React框架的開發效率。react-native
一份代碼同時支持IOS和Android兩個平臺在歷史上證實是很是困難的,因此React Native小組並無狂妄的喊出」Write once,run anywhere」,而是提出了「Learn once,write anywhere」。使用RN能夠爲兩個操做系統開發應用程序,但不一樣的平臺上的代碼根據平臺會有一些微小的區別,但開發思路是相同的。在UI開發上,RN差很少作到了」Write once,run anywhere」。微信
React Native支持混合開發,大體分爲三種狀況。
1. UI界面由React Native開發, 但UI事件處理由原生代碼執行
2. 將原來使用的原生代碼實現的UI小部件包裝成React Native的自定義控件
3. 應用界面在React Native開發的界面與原生代碼開發的界面間進行切換,React Native的強項就是UI開發,在混合開發中,能用React Native開發的界面,優先用React Native開發.markdown
RN優勢很明顯,
1. 能夠大大節省開發成本,百分之90多界面能夠經過RN開發,一份代碼能夠適配Android和IOS.
2. RN有獨特的UI實現框架,藉助組件化開發是團隊規模更容易進行調整,能夠快速迭代項目.
3. RN能夠經過一些手段自動匹配不一樣屏幕大小的手機,不再須要本身去計算視圖的大小和位置.
4. RN具有高效的UI調試.框架
RN也有一些缺點,不過相對於優勢基本上能夠忽略
1. RN開發的程序內存消耗略大, 開發模式下開銷大幾十兆,發佈後差別不大, 目前手機基本上都有2G以上的內存, 幾十兆能夠忽略不計了。
2. 運行速度略慢, 不能否認,原生代碼比RN運行速度略快, 顯示一個界面多一兩毫秒吧,正常的人根本感受不到,若是你用不通過優化的原生代碼反而不如RN.
3. 安裝包比原生代碼安裝包大,這點更能夠忽略了, 如今手機什麼都缺就不缺空間.工具
React Native能夠在Mac,Linux,Windows上搭建, 其中若是開發IOS,必須在Mac上搭建。具體如何搭建能夠參考React Native環境搭建組件化
React Native 官方文檔中文版
React Native中文網
ECMAScript 6入門
更多精彩請關注微信公衆帳號likeDev,公衆帳號名稱:愛上Android。