React Native 0.71 发布,默认使用 TypeScript、恢复 PropTypes
React Native 0.71 版本正式发布,这是一个功能丰富的版本,包括:默认的 TypeScript、Flexbox Gap、恢复 PropTypes 和新架构更新等。
默认 TypeScript
从 0.71 版本开始,当你通过 React Native CLI 创建一个新的 React Native 应用时,你将默认得到一个 TypeScript 应用。
我们还直接从 react-native
包中提供内置的、更准确的 TypeScript 声明。这意味着你将不再需要 @types/react-native
,并且类型将与 React Native 版本同步更新。
用 Flexbox gap 简化布局
通过 React Native,你可以使用 Flexbox 在不同的屏幕尺寸上灵活地布局组件。浏览器已经支持 Flexbox gap、rowGap 和 columnGap 属性,它们允许你指定 Flexbox 中所有项目之间的空间大小。
这些属性在 React Native 中已经被要求了很久,0.71 版本增加了对使用像素值定义的 gap 的初始支持。在未来的版本中,我们将增加对更多数值的支持,比如百分比。
受 Web 启发的可访问性、样式和事件属性
这个版本包括了一些受 Web 标准启发的新属性,以使 React Native 的 API 在许多平台上保持一致。这些新的属性是纯增量的,所以对于同等的可访问性、行为或样式属性,没有预期的迁移或行为改变。
对于引入的任何新的属性别名,如果现有的属性有不同的名称,并且两者都被指定,那么新的别名属性值将被优先考虑。例如,这个版本为图像组件的 source
增加了一个 src
属性别名,以便与 Web 上的 src
属性保持一致。如果同时提供 src
和 source
,将使用新的 src
属性。
恢复 PropTypes
React Native 的属性类型,如 ViewPropTypes
和 Text.propTypes
,在 0.66 版本中已经被废弃,访问它们会输出废弃警告。当它们在 0.68 版本中被删除时,许多开发者在升级到最新版本的 React Native 时开始遇到错误。
所以在这个版本中,我们重新添加了 React Native 的 PropTypes,以便人们更容易升级和迁移他们的代码,避免使用它们。在 0.71 版本中,deprecated-react-native-prop-types
包也已经更新了所有的属性。在未来,我们计划继续进行废弃,并再次删除属性类型。
开发者体验的改进
React DevTools
这个版本将网络上两个流行的 React DevTools 功能带到了 React Native。
"Click to inspect" 是 React Dev Tools 左上角的选项,允许你在应用中点击一个项目,以在 Dev Tools 中检查它,类似于 Chrome 的元素检查器。
组件高亮将高亮你在应用中的 DevTools 中选择的元素,这样你就可以看到哪些 React 组件与屏幕上的哪些元素相一致。
新架构
这个版本根据目前收集到的用户反馈和报告,为实验性的新架构体验带来了许多改进。
- 缩短了构建时间:新的发布模式使用 Maven Central,这使我们能够大大减少 Android 上的构建时间,解决了 Windows 上的许多构建问题,并为新架构提供了更多的无缝体验。
- 少写 C++ 代码:你现在可以启用新架构,而不必在你的应用中添加任何 C++ 代码,CLI 应用模板中的所有 C++ 代码和 CMake 文件都已被清理
- 更好地封装了 iOS 应用设置:在 iOS 上,采用了与 Android 类似的方法,并将大部分设置新架构的逻辑封装在
RCTAppDelegate
类中,这将简化未来的升级 - 更好的 iOS 依赖管理:对于库维护者,我们增加了一个新的
install_module_dependencies
函数,在你的podspec
包中调用,这将为新架构安装所有需要的依赖。 - 错误修复和更好的 IDE 支持:修复了用户在新架构工作组中报告的几个错误和问题

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spring Framework 6.0.4 & 5.3.25 发布
Spring Framework 的两个分支发布了更新,分别是 6.0.4 和 5.3.25。 下周发布的 Spring Boot 3.0.2 将搭载 Spring Framework 6.0.4,此版本主要变化: @Convert添加对 JPA 实体的原生支持#29771 @RequestPartdto 未配置为在 aot 中进行反射#29749 避免在空映射和集合上浪费内存#29742 优化与 Hibernate ORM 6.2 的兼容性#29736 添加对 MockMVC 和 ExpectAll 的 Kotlin DSL 支持#29727 添加 ExecutingResponseCreator 以委托请求和响应#29721 JmsTemplate.convertAndSend 在关机期间抛出 NullPointerException#29706 提取 ResourceEntityResolver HTTPS schema 以解析回调#29697 @Configuration原生镜像中使用 Kotlin 的类已损坏#29663 为ResultActions.andExpectAll...
- 下一篇
每日一博 | 盘点微服务架构下的诸多身份验证方式
联合作者:罗泽轩,API7.ai 技术专家、Apache APISIX PMC 成员 联合作者:赵士瑞,API7.ai 技术工程师,Apache APISIX Committer 身份认证是授予用户访问系统并授予使用系统的必要权限的过程。而提供了这一功能的服务,就是身份认证服务。 在传统的单体软件应用程序中,所有这些都发生在同一个应用程序中。但在微服务架构中,系统由多个服务组成,在这样的架构中,每个微服务都有自己的任务,因此为每个微服务分别实现授权和身份验证过程并不完全符合此原则。 本文将从传统服务架构和微服务架构下的身份认证方式区别进行讨论,并最终衡量微服务架构中身份认证服务的各种实现方式的优劣。 传统服务架构中的身份认证服务 在企业开发服务的早期,所有功能都是做到同一个应用程序里面的。我们把这种模式称之为 “单体”,以跟当下更为主流的 “微服务” 架构区分开来。 单体应用由单个不可分割的单元组成。它通常由各个业务线各自开发,但是部署时放入到同一个环境中。所有这些都紧密集成以在一个单元中提供所有功能。这一单元里拥有所需的所有资源。单体应用的好处在于部署迭代简单,适合业务线较少且比较独...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2全家桶,快速入门学习开发网站教程