ReactNative 可以基于目前大热的开源JavaScript库React.js来开发iOS和Android原生App。而且React Native已经用于生产环境——Facebook Groups iOS 应用就是基于它开发的。

React Native 0.62 发布,默认支持 Flipper,新的暗黑模式_java


React Native的原理是在JavaScript中用React抽象操作系统原生的UI组件,代替DOM元素来渲染,比如以<View>取代<div>,以<Image>替代<img>等。

在幕后,React Native在主线程之外,在另一个背景线程里运行JavaScript引擎,两个线程之间通过一批量化的async消息协议来通信(有一个专门的React插件)。

UI方面React Native提供跨平台的类似Flexbox的布局系统,还支持CSS子集。可以用JSX或者普通JavaScript语言,还有CoffeeScript和TypeScript来开发。

React Native比起标准Web开发或原生开发能够带来的三大好处

手势识别:基于Web技术(HTML5/JavaScript)构建的移动应用经常被抱怨缺乏及时响应。而基于原生UI的React Native能避免这些问题从而实现实时响应。原生组件:使用HTML5/JavaScript实现的组件比起原生组件总是让人感觉差一截,而React Native由于采用了原生UI组件自然没有此问题。样式和布局:iOS、Android和基于Web的应用各自有不同的样式和布局机制。React Native通过一个基于FlexBox的布局引擎在所有移动平台上实现了一致的跨平台样式和布局方案。

0.62 更新内容

React Native 0.62 发布了,此版本一大亮点是默认支持 Flipper。

React Native 0.62 发布,默认支持 Flipper,新的暗黑模式_java_02


Flipper 是用于调试移动应用的开发人员工具,它在 Android 和 iOS 社区中都很流行,Flipper 提供以下功能:

  • Metro Actions:重新加载应用并从工具栏直接触发开发菜单。

  • Crash Reporter:查看来自 Android 和 iOS 设备的崩溃报告。

  • React DevTools:与所有其它工具一起使用最新版本的 React DevTools。

  • Network Inspector:查看设备应用程序发出的所有网络请求。

  • Metro and Device Logs:查看、搜索和过滤来自 Metro 和设备的所有日志。

  • Native Layout Inspector:查看和编辑 React Native 渲染器输出的原生布局。

  • Database and Preference Inspectors:查看和编辑设备数据库和首选项。

另一大亮点是新的暗黑模式。添加了一个新Appearance模块,以提供对用户外观偏好的访问,例如用户的首选配色方案(浅色或深色)。

const colorScheme = Appearance.getColorScheme();
if (colorScheme === 'dark') {
 // Use dark color scheme
}

同时还添加了一个 hook 跟踪用户首选项的状态更新:

import {Text, useColorScheme} from 'react-native';

const MyComponent = () => {
 const colorScheme = useColorScheme();
 return <Text>useColorScheme(): {colorScheme}</Text>;
};