共计 2546 个字符,预计需要花费 7 分钟才能阅读完成。
明天 ReactNative 官网公布了 0.63 版本,间隔上一个版本 0.62 曾经过了差不多将近 4 个月的工夫了,我在上一篇文章中也提到了 0.62 的更新内容一篇文章带你理解 ReactNative0.62 更新内容。
此次 0.63 版本的更新次要是提供了一个 LogBox(日志盒子),一个全新设计的日志零碎,不便开发定位开发中遇到的问题,请大家通过本篇文章来理解一下吧。
@[toc]
LogBox
在 ReactNative 定位谬误始终是一个比拟艰难的事件,所以 ReactNative 团队从新设计了针对谬误,正告及日志的零碎,全新的 UI 设计,称之为 LogBox,款式如下:
LogBox 通过如下三点来欠缺解决开发过程中遇到的比方无奈格式化,简短的正告和错误信息等:
- 简介:日志零碎应该提供尽可能简略的信息来帮忙开发定位问题
- 格式化:将信息格式化,不便开发定位和查看
- 可操作性:日志应该具备可操作性,能够帮忙解决问题
为了达到以上指标,LogBox 蕴含如下几个性能零碎:
- 日志告诉:从新设计了正告告诉并减少了谬误反对,console.warn 和 console.log 音讯都都是为告诉,而不是以往的会笼罩 APP 页面之上
- 代码框架:谬误及正告都有对应的代码框架能够在 APP 内显示对应的源码,不便疾速定位信息
- 组件堆栈:将堆栈信息独自从日志零碎中剥离,是日志信息不会因堆栈信息而凌乱
- 折叠堆栈信息:将与应用程序无关的堆栈框架信息进行折叠,能够疾速查看问题,而不必在 ReactNative 外部进行筛选
- 语法错误格局:改良了语法错误的格局,并通过语法突出显示增加了代码帧,因而能够查看谬误的本源,进行修复,并持续进行编码
通过全新设计的日志零碎,能够让开发者通过下面令人赏心悦目的 UI 展现,更加不便的开发调试。
提供了新的 LogBoxApi 来替换原来 YellowBox:
- LogBox.ignoreLogs(): 用于替换原来 YellowBox.ignoreLogs([]) 的性能
- LogBox.ignoreAllLogs():用于替换 console.disableYellowBox,敞开谬误和正告告诉。
新版本的 LogBox 内容就是以上的内容了,还有其余内容,一起来看一下吧。
Pressable
ReactNative 中目前可点击的组件如下:Button, TouchableWithoutFeedback, TouchableHighlight, TouchableOpacity, TouchableNativeFeedback, and TouchableBounce. 然而在不同平台上的点击体现是不统一,将来 ReactNative 将在很多平台上提供高质量的利用,目前在 Web, Desktop, 和 TV 均有倒退,已此须要在所有平台上提供高质量的交互体验。
为了解决这个问题,推出了一个外围交互 API-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>;
原生平台 Color(PlatformColor, DynamicColorIOS)
每个原生平台都有零碎定义的色彩的概念。React Native 当初提供了一个开箱即用的解决方案来应用这些零碎色彩。PlatformColor()是一个新的 API,能够像 React Native 中的任何其余色彩一样应用。
对于 IOS 零碎,提供了一个 labelColor,应用形式如下
import {Text, PlatformColor} from 'react-native';
<Text style={{color: PlatformColor('labelColor') }}>
This is a label
</Text>;
对于 Android 零碎,提供了一个 colorButtonNormal, 应用形式如下
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 类似,它能够在任何能够应用色彩的中央应用。DynamicColorIOS 在后盾应用 iOS 的 colorWithDynamicProvider。
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>;
不再反对 iOS9 及 Node.js 8
### 其余显著的改良
- 反对在 Text 中渲染 View
- 将 iOS LaunchScreen 从 xib 更改为 storyboard:从 2020 年 4 月 30 日开始,所有提交到 App Store 的利用必须应用 Xcode storyboard 来设置启动页,并适配所有 iphone 屏幕。
以上就是所有 ReactNative0.63 版本的次要更新内容。
感觉文章不错的,给我点个赞哇,关注一下呗!
技术交换可关注微信公众号【君伟说】,加我好友一起探讨
微信交换群:加好友 Wayne214(备注技术交换)邀你入群,抱团学习共提高