2

时隔近4个月的时间,ReactNative带来了0.71版本的更新,这速度对比隔壁Flutter不得不说是真的有的慢。

这个版本的更新的内容还是比较重磅和突破性的,主要体现在如下几点:

  • 编程语法默认改为TypeScript
  • 使用Flexbox Gap使布局更加简单
  • 开发者体验提升
  • 有关新架构内容的升级
  • 引入的部分web开发标准的属性,样式及事件
  • 恢复PropTypes
  • 其他变化

默认TypeScript

从0.71版本开始,新建的项目的开发语言默认从JavaScript变成TypeScript,与此同时项目根目录会增加一个tsconfig.json文件用于辅助开发者编写语法正确的Ts代码。另外0.71版本因本身已支持ts,所以不需要再package.json文件中添加@types/react-native依赖。

有关TypeScript,可以理解为增强版JavaScript.

TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准(ES6 教程)。
TypeScript 由微软开发的自由和开源的编程语言。
TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。

使用Flexbox Gap让布局更加简单

此版本引入了web开发标准的属性gap, rowGap, columnGap,使用这些属性可以更加方便且实用的进行组件之间隔的设置。
比如设置组件之间间隔为margin: 10,效果如下

使用gap: 10,效果如下,更简单也更符合预期

开发者体验提升

React DevTools

开发调试工具增加了两个比较好用的功能,点击元素检查和组件高亮, 这对于我们开发中调试布局页面来说更加友好,也更加容易让我们定位组件元素。

Hermes

在0.71版本中对Hermes引擎做了进一步的升级,包括并不限于如下:

  • JSON.parse性能提升30%
  • 增加对String, TypedArray, and Array属性at()的支持
  • 在Metro中通过网络实现加载source maps

新架构的升级

0.71版本带来了诸多关于新架构体验及性能方面的升级。

  • 大幅度减少了Android平台的编译时间,并解决了诸多Window平台的编译问题
  • 现在可以启用新体系结构,而无需在应用程序中添加任何C++代码,并且CLI应用程序模板已清除所有C++代码和CMake文件。
  • 在iOS平台设置开启新架构支持更加简介
  • 在iOS平台,在podspec中新增了install_module_dependencies函数用于管理所有需要的依赖项。

引入部分web开发标准的内容

该版本包含了许多web标准东西,以在许多平台上对其React Native的API。这些新属性都是是附加的,因此对于等效的可访问性、行为或样式道具,不会出现预期的影响,比如Image和TextInput组件。

  • Image: alt, tintColor, crossOrigin, height, referrerPolicy, src, srcSet, and width.
  • TextInput: autoComplete, enterKeyHint, inputMode, readOnly, and rows.

其他变化

  • 移除了AsyncStorage和MaskedViewIOS
  • JSCRuntime移动至react-jsc,如果需要JSCRuntime,需要添加react-jsc依赖。

总结

以上就是0.71版本的主要更新内容,此次重点还是把TypeScript作为首要开发语言。


似水流年
228 声望19 粉丝

编程开发工作者