React Native 0.63 发布,告警系统、颜色与交互能力改进

栏目: 软件资讯 · 发布时间: 3年前

内容简介:React Native 0.63 已经发布了,此版本主要亮点包括: 默认启用 LogBox <Pressable /> 组件 新增使用系统定义颜色的 API 默认启用 LogBox 社区一直以来反馈错误和警告很难在 React Native 中进行调试,因此开发团...

React Native 0.63 已经发布了,此版本主要亮点包括:

  • 默认启用 LogBox
  • <Pressable /> 组件
  • 新增使用系统定义颜色的 API

默认启用 LogBox

社区一直以来反馈错误和警告很难在 React Native 中进行调试,因此开发团队研究了 React Native 中的整个错误、警告和日志系统,从头开始对其进行了重新设计,现在使用一个新系统 LogBox 替换 redbox、yellowbox 与日志记录。上一个版本中已经引入该 LogBox,此版本开始,它默认开启,并在使用 yellowbox 等一些不建议使用的模块或方法时发出警告,0.64 版本中将删除相关 API。

React Native 0.63 发布,告警系统、颜色与交互能力改进

LogBox 目标是:

  • 简洁:日志应提供调试问题所需的最少信息量。
  • 格式化:日志应该格式化,可以快速找到所需的信息。
  • 可操作性:日志应可操作,可以解决问题并继续进行。

为了实现这些目标,LogBox 设计时包括:

  • 日志通知:重新设计了警告通知并增加了对错误的支持,以便所有 console.warn 和 console.log 消息都显示为通知,而不是覆盖应用程序。
  • 代码帧:每个错误和警告都包括一个代码帧,可在应用程序内部显示日志的源代码,可以快速识别问题的来源。
  • 组件栈:提供了一个一致的、不会使日志消息混乱的组件栈帧信息,只显示前三个。
  • 折叠组件栈帧:默认情况下折叠与应用程序代码无关的调用堆栈帧,可以在应用程序中快速查看问题,而不必通过 React Native 内部筛选。
  • 语法错误格式:改进了语法错误的格式,并通过语法高亮添加了代码帧,可以查看错误的根源进行修复,并继续进行编码。

pressable 组件

React Native 现在支持 Web、桌面和电视等平台,但是缺少对其它输入方式的支持。为了解决在所有平台上支持高质量的交互体验,此版本提供了一个新核心组件Pressable。该组件可用于检测各种类型的交互,旨在提供对交互当前状态的直接访问,而不必在父组件中手动维护状态。同时它还旨在使平台能够扩展其功能,例如悬停、模糊与聚焦等。

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

<Pressable
  onPress={() => {
    console.log('pressed');
  }}
  style={({ pressed }) => ({
    backgroundColor: pressed ? 'lightskyblue' : 'white'
  })}>
  <Text style={styles.text}>Press Me!</Text>
</Pressable>;

新增使用系统定义颜色的 API

每个平台都有系统定义的颜色,尽管可以通过AppearanceAPI 或 AccessibilityInfo检测并设置其中的某些样式,但是这样的操作不仅开发成本高昂,而且还局限。

React Native 现在提供了一个开箱即用的解决方案来使用这些系统颜色。PlatformColor()是一个新的 API,可以像 React Native 中的其它任何颜色一样使用。

例如,在 iOS 上,系统提供一种颜色labelColor,可以在 React Native 中这样使用 PlatformColor

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

<Text style={{ color: PlatformColor('labelColor') }}>
  This is a label
</Text>;

另一方面,Android 提供像 colorButtonNormal 这样的颜色,可以在 React Native 中这样使用 PlatformColor

import { View, Text, PlatformColor } from 'react-native';

<View
  style={{
    backgroundColor: PlatformColor('?attr/colorButtonNormal')
  }}>
  <Text>This is colored like a button!</Text>
</View>;

同时DynamicColorIOS是仅限于 iOS 的 API,可以定义在浅色和深色模式下使用的颜色。与PlatformColor相似,可以在任何可以使用颜色的地方使用:

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

const customDynamicTextColor = DynamicColorIOS({
  dark: 'lightskyblue',
  light: 'midnightblue'
});

<Text style={{ color: customDynamicTextColor }}>
  This color changes automatically based on the system theme!
</Text>;

此外 0.63 版本还不再支持 iOS 9 与 Node.js 8,完整更新内容可以查看:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python网络数据采集

Python网络数据采集

米切尔 (Ryan Mitchell) / 陶俊杰、陈小莉 / 人民邮电出版社 / 2016-3-1 / CNY 59.00

本书采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导。第一部分重点介绍网络数据采集的基本原理:如何用Python从网络服务器请求信息,如何对服务器的响应进行基本处理,以及如何以自动化手段与网站进行交互。第二部分介绍如何用网络爬虫测试网站,自动化处理,以及如何通过更多的方式接入网络。一起来看看 《Python网络数据采集》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具