你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> Facebook正式開源ReactNative:第一印象

Facebook正式開源ReactNative:第一印象

編輯:IOS開發基礎

bar.jpg

今天早上醒來,接到一封郵件。郵件的內容大概就是Facebook終於正式開源了ReactNative。這篇文章談談我對ReactNative的第一時間體驗以及看法。

ReactNative vs. NativeScript

我在接觸React Native之前學習過NativeScript,它們的共同特點就是脫離傳統Hybrid App的思路,基於HTML、CSS、JavaScript重新定義了一套規則。

NativeScript是一個社區構建的產品,這一方面促進了它的高速迭代,另一方面卻讓它變得很混亂。我使用NativeScript的時候實際上是抱著一種很寬容的態度的,然而實際上NativeScript有非常多的bug。這可能也是一個完全由社區驅動的產品的特點。

React Native畢竟有著Facebook這樣的公司作為背景,強大的工程團隊做支撐。在使用了一會兒之後,它給我的第一印象遠遠超過了Native Script。下面我來談談React Native的第一印象。

直觀(Intuitive)

我認為React.js(Web平台)的一大特點就是直觀,頁面由Components組成,不像Angular.js一樣有一套很復雜的機制以及很難學懂的最佳實踐。

React Native繼承了這一點,而且我認為這一優點會被放大。因為在移動平台,頁面的組件一般會比較少,每個組件也應該比較小。利用React.js的語法,我們就可以創建Native的View。

var name = 'John Wu';
var avatarUrl = 'http://placehold.it/40x40';
render: function() {return (Hello{name});
}

React.js的特性我們都可以在React Native裡面使用。

新Web特性支持

許多重要的ES6特性都被支持。從官方Tutorial中就可以看到很多新特性,諸如

  • Arrow functions

  • Object destruction

React Native還支持Fetch API,為XMLHttpRequest提供了很好的封裝。

同時,React Native還支持Flexbox。Flexbox是新的Web頁面Layout解決方案。我提供幾個鏈接給大家,供有興趣的朋友學習。

  • A complete guide to Flexbox

  • Flex adventures

  • Using Flexbox today

相信還有更多的cutting-edge technologies會在這個平台上被開發出來。

Live Reloading

我是一個不折不扣的懶人,我之前在做頁面的時候經常使用Live Reload,盡管我在寫頁面的時候並不經常去看頁面。

React Native允許你在本地啟動一個服務器,讓你的模擬器(我這裡用的是iOS Simulator)與這個服務器通訊,實時渲染你的應用。在iOS Simulator中開發的時候,只需要使用cmd+R就可以刷新你的應用。

然而,在類似NativeScript、Cordova這樣的平台中,你都需要重新Build項目才行。

Native Module

React Native允許你自己編寫Objective-C代碼(稱作Native Module),並在項目中使用。當你需要用到一些Native API、高性能的處理(例如多線程)時,就可以使用OC編寫相應模塊。

// CalendarManager.h
#import "RCTBridgeModule.h"
@interface CalendarManager : NSObject @end

Native Module必須實現protocal RCTBridgeModule。

平台支持

目前開發僅支持Mac OS,部署僅支持iOS平台。後續一定會有其他平台的支持。

總結

React Native的讓我感覺非常地務實,但同時又打破了很多既有的東西。

說它務實,它並未一次性支持了所有平台,而且也並未試圖完全使用現有的Web技術去實現Native應用的開發。說它打破了很多既有的東西,上面我所說的幾點都可以證明這幾點。更重要的是它的開發體驗非常好,在起步學習的時候我基本沒有遇到任何阻力(前提是你學習過React.js)。

我將持續關注React Native,並希望能和大家交流更多有關Web與Native的話題。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved