用JS開發移動原生應用,非死book正式開源React Native!
在經過前一天 Messenger 應用平臺、Parse 物聯網開發者工具等驚喜的轟炸,非死book 于今天凌晨在 F8 開發者大會上正式開源了 React Native。不過目前,只有 iOS 版,Android 版還需要再等一段時間,這是最新的用 JavaScript 語言開發原生 App 的嘗試,其示例代碼相當簡潔,內置控件也不少。同時還為 React Native 開發了一款基于 Atom 的 IDE——Nuclide,也已開源。
React Native 主要特性如下:
- 原生的 iOS 組件
React Native 主張“Learn once, write everywhere”而非其他跨平臺工具一直宣揚的“Write once, run everywhere”。通過 React Native,開發者可以使用 UITabBar、UINavigationController 等標準的 iOS 平臺組件,讓應用界面在其他平臺上亦能保持始終如一的外觀、風格。
var React = require('react-native'); var { TabBarIOS, NavigatorIOS } = React; var App = React.createClass({ render: function() { return ( <TabBarIOS> <TabBarIOS.Item title="React Native" selected={true}> <NavigatorIOS initialRoute={{ title: 'React Native' }} /> </TabBarIOS.Item> </TabBarIOS> ); }, });
異步執行
JavaScript 應用代碼和原生平臺之間所有的操作都采用異步執行模式,原生模塊使用額外線程,開發者可以解碼主線程圖像、后臺保存至磁盤、無須顧忌 UI 等諸多因素直接度量文本設計布局。
觸摸處理
React Native 引入了一個類似于 iOS 上 Responder Chain 響應鏈事件處理機制的響應體系,并基于此為開發者提供了諸如 TouchableHighlight 等更高級的組件。
var React = require('react-native'); var { ScrollView, TouchableHighlight, Text } = React; var TouchDemo = React.createClass({ render: function() { return ( <ScrollView> <TouchableHighlight onPress={() => console.log('pressed')}> <Text>Proper Touch Handling</Text> </TouchableHighlight> </ScrollView> ); }, });
非死book 在 React Native 的主頁上詳細介紹了 React Native 的種種功能特性,想要了解更多細節,可直接進入主頁查看,而其為 React Native 搭配的開源 IDE Nuclide 支持 React Native、Web 和原生移動開發,基于 Atom 構建,不過也需要FQ。
React Native Github 托管地址:https://github.com/非死book/react-native