摘要:Facebook正式開(kāi)源了React Native,不過(guò)目前,只有iOS版,Android版還需再等一段時(shí)間,這是新的用JavaScript語(yǔ)言開(kāi)發(fā)原生App的嘗試。Facebook同時(shí)還為React Native開(kāi)發(fā)了一款基于Atom的IDE——Nuclide,也已開(kāi)源。
在經(jīng)過(guò)前一天Messenger應(yīng)用平臺(tái)、Parse物聯(lián)網(wǎng)開(kāi)發(fā)者工具等驚喜的轟炸,F(xiàn)acebook于今天凌晨在F8開(kāi)發(fā)者大會(huì)上正式開(kāi)源了React Native。不過(guò)目前,只有iOS版,Android版還需要再等一段時(shí)間,這是新的用JavaScript語(yǔ)言開(kāi)發(fā)原生App的嘗試,其示例代碼相當(dāng)簡(jiǎn)潔,內(nèi)置控件也不少。同時(shí)還為React Native開(kāi)發(fā)了一款基于Atom的IDE——Nuclide,也已開(kāi)源。
React Native主要特性如下:
原生的iOS組件
React Native主張“Learn once, write everywhere”而非其他跨平臺(tái)工具一直宣揚(yáng)的“Write once, run everywhere”。通過(guò)React Native,開(kāi)發(fā)者可以使用UITabBar、UINavigationController等標(biāo)準(zhǔn)的iOS平臺(tái)組件,讓應(yīng)用界面在其他平臺(tái)上亦能保持始終如一的外觀、風(fēng)格。
[js] view plaincopy在CODE上查看代碼片派生到我的代碼片
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> ); }, });
異步執(zhí)行
JavaScript應(yīng)用代碼和原生平臺(tái)之間所有的操作都采用異步執(zhí)行模式,原生模塊使用額外線程,開(kāi)發(fā)者可以解碼主線程圖像、后臺(tái)保存至磁盤、無(wú)須顧忌UI等諸多因素直接度量文本設(shè)計(jì)布局。
觸摸處理
React Native引入了一個(gè)類似于iOS上Responder Chain響應(yīng)鏈?zhǔn)录幚頇C(jī)制的響應(yīng)體系,并基于此為開(kāi)發(fā)者提供了諸如TouchableHighlight等更高級(jí)的組件。
[js] view plaincopy在CODE上查看代碼片派生到我的代碼片
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> ); }, });
Facebook在 React Native的主頁(yè)上詳細(xì)介紹了React Native的種種功能特性,想要了解更多細(xì)節(jié),可直接進(jìn)入主頁(yè)查看,而其為React Native搭配的開(kāi)源IDE Nuclide支持React Native、Web和原生移動(dòng)開(kāi)發(fā),基于Atom構(gòu)建,不過(guò)也需要。
React Native Github托管地址: https://github.com//react-native
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個(gè)人觀點(diǎn), 并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個(gè)個(gè)人學(xué)習(xí)交流的平臺(tái),網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對(duì)作者和來(lái)源進(jìn)行了通告,但是能力有限或疏忽,造成漏登,請(qǐng)及時(shí)聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對(duì)此聲明的最終解釋權(quán)。