自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

FB開源React Native,用JS開發(fā)原生iOS應用

移動開發(fā) iOS
Facebook今日正式開源了React Native庫,目前已經可在github上下載,目前只有iOS版,不過Android版本很快也將開源。開發(fā)者可使用JavaScript和Facebook的React庫開發(fā)原生的iOS和Android應用程序。同時Facebook還開源了Nuclide--一個針對React Native、web以及原生移動開發(fā)的IDE。Nuclide基于Atom構建,并且有活躍的社區(qū)作為支持。

68.png

Facebook今日正式開源了React Native庫,目前已經可在github上下載,目前只有iOS版,不過Android版本很快也將開源。開發(fā)者可使用JavaScript和Facebook的React庫開發(fā)原生的iOS和Android應用程序。同時Facebook還開源了Nuclide--一個針對React Native、web以及原生移動開發(fā)的IDE。Nuclide基于Atom構建,并且有活躍的社區(qū)作為支持。
 

React Native使用Javascript將app編譯為原生的應用程序視圖,提供了用戶熟悉的iOS和Android設備上的外觀和體驗。React Native并不像你此前使用過的web封裝包,其代碼表現幾乎和原生的應用程序一樣。

Facebook已經使用React Native開發(fā)了其旗下主要的應用程序,比如Facebook Groups,這款應用就是使用React Native渲染了大部分視圖。該公司表示React和React Native可讓開發(fā)者只學習一種語言就能輕易為任何平臺高效地編寫代碼。并且Facebook將會在React Native繼續(xù)投資和投入。

Facebook宣布開源該項目,對很多開發(fā)者來說都是相當激動的一件事。此前Facebook就開源了自家多個項目,比如此前的網絡測試工具Augmented Traffic Control (ATC),動畫引擎POP以及微調工具Tweaks等。

React Native特點包括:

原生的iOS組件

開發(fā)者可使用標準平臺組件,比如iOS平臺上的UITabBar和UINavigationController,可以讓開發(fā)者的應用程序擁有和原生平臺一致的外觀和體驗,并保持較高的品質。這些組件可以輕松并入開發(fā)者的應用程序中。

  1. var React = require('react-native');  
  2. var { TabBarIOS, NavigatorIOS } = React;  
  3. var App = React.createClass({  
  4.   render: function() {  
  5.     return (  
  6.       <tabbarios>  
  7.         <tabbarios.item title="react native" selected={true}>  
  8.           <navigatorios initialroute={{ title: 'react native' }} >  
  9.         </navigatorios initialroute={{ title: 'react native' }} >  
  10.       </tabbarios.item title="react native" selected={true}>  
  11.     );  
  12.   },  
  13. });</tabbarios> 

異步執(zhí)行

JavaScript應用代碼和原生平臺之間所有的操作都是異步執(zhí)行,原生模塊也可以使用額外線程,這意味著把開發(fā)者可以解碼主線程圖像,并將其在后臺保存至磁盤,而文本和布局的估量計算也不會阻塞UI等。因此React Native app的流暢度和響應性都非常好。通信也是完全可序列化的,當運行完整的應用程序時,這允許開發(fā)者使用Chrome Developer Tools來調試JavaScript,或者在模擬器中,或者在真機上。
 

77.png

觸摸處理

iOS有一個非常強大的系統(tǒng)--Responder Chain,可以用來響應復雜視圖層級中的事件,但并沒有類似功能的web工具。React Native可實現類似的響應系統(tǒng)并提供高水平的組件,比如TouchableHighlight,無需額外配置即可與滾動視圖和其他元素適度整合。

  1. var React = require('react-native');  
  2. var { ScrollView, TouchableHighlight, Text } = React;  
  3. var TouchDemo = React.createClass({  
  4.   render: function() {  
  5.     return (  
  6.       <scrollview>  
  7.         <touchablehighlight onpress={() => console.log('pressed')}>  
  8.           <text>Proper Touch Handling</text>  
  9.         </touchablehighlight onpress={() =>  
  10.       </scrollview>  
  11.     );  
  12.   },  
  13. }); 

彈性框和樣式(Flexbox and Styling)

布局視圖應該是簡單的,所以我們將web平臺上的彈性框模塊引入了React Native。彈性框可用來搭建最常用的UI布局,比如代用邊緣和填充的堆疊和嵌入。React Native還支持常見的web系統(tǒng),比如fontWeight和StyleSheet。

  1. var React = require('react-native');  
  2. var { Image, StyleSheet, Text, View } = React;  
  3. var ReactNative = React.createClass({  
  4.   render: function() {  
  5.     return (  
  6.       <view style={styles.row}>  
  7.         <img         =""           style="{styles.image}"           source="{{uri: 'http://facebook.github.io/react/img/logo_og.png'}}">  
  8.         <view style={styles.text}>  
  9.           <text style={styles.title}>  
  10.             React Native  
  11.           </text style={styles.title}>  
  12.           <text style={styles.subtitle}>  
  13.             Build high quality mobile apps using React  
  14.           </text style={styles.subtitle}>  
  15.         </view style={styles.text}>  
  16.       </view style={styles.row}>  
  17.     );  
  18.   },  
  19. });  
  20. var styles = StyleSheet.create({  
  21.   row: { flexDirection: 'row', margin: 40 },  
  22.   image: { width: 40, height: 40, marginRight: 10 },  
  23.   text: { flex: 1, justifyContent: 'center'},  
  24.   title: { fontSize: 11, fontWeight: 'bold' },  
  25.   subtitle: { fontSize: 10 },  
  26. }); 

可擴展性
 

使用React Native無需編寫一行原生代碼即可創(chuàng)建出一款優(yōu)秀的應用程序,并且React Native可通過自定義原生視圖和模塊來進行擴展--也就是說你可以重用此前的任何內容,可導入和使用你最喜歡的原生庫。

關于React Native的更多詳細內容,請參閱以下資源:

GitHub主頁:https://github.com/facebook/react-native

文檔支持頁面:http://facebook.github.io/react-native/

Nuclide介紹:http://nuclide.io/

Facebook開源項目展示:https://code.facebook.com/projects/

責任編輯:林師授 來源: CocoaChina
相關推薦

2016-11-23 16:48:20

react-nativandroidjavascript

2016-04-22 09:47:34

阿里百川Weex開發(fā)

2021-07-25 21:36:24

Windows操作系統(tǒng)功能

2016-08-12 13:55:06

2017-09-11 14:35:34

編輯器開發(fā)環(huán)境React

2018-06-13 16:38:33

React Nativ組件Android

2018-01-02 16:08:00

AndroidiOSReact Nativ

2016-07-29 13:47:05

RethinkDBWeb

2021-07-26 08:00:00

開發(fā)工具Flutter

2019-08-19 08:14:52

深度鏈接iOSAndroid

2023-02-09 07:15:52

開發(fā)FlutterReact

2012-02-13 13:45:04

MonoTouch.NETiOS應用

2022-04-14 08:00:00

Cypress測試開發(fā)

2016-01-13 09:37:00

IDC混合開發(fā)react nativ

2015-12-31 10:14:54

React.js開發(fā)Web應用

2016-06-06 17:26:22

平臺開發(fā)

2024-05-15 11:42:33

FlutterWeb 庫應用程序

2021-03-02 09:00:00

開源框架技術

2016-10-13 19:01:59

React NativUbuntu

2019-08-29 09:00:55

開發(fā)Flutter框架
點贊
收藏

51CTO技術棧公眾號