React Native 新架构是何如作事的?

发布时间: 2022-01-17 05:50:21  来源:华体会平台官网app 作者:华体会平台下载 

  目前 React Native 新架构所依赖的 React 18 仍旧发了 beta 版,React Native 新架构面向生态库和主题开荒者的文档也正式发表,React Native 团队成员 Kevin Gozali 也正在迩来一次访叙中叙到新架构离正式发版还差结果一步延迟初始化,而结果一步约莫会正在 2022 年上半年告竣。各类迹象证实,React Native 新架构真的要来了。

  后续也会通过极客时光专栏的样式和大多先容新架构的运用手法、剖释架构道理、解说践诺计划。

  本文档还正在更新不断中,会从观念上先容 React Native 新架构是若何管事的。主意读者搜罗生态库的开荒者、主题功劳者和极度有好奇心的人。文档先容了即将发表的新衬着器 Fabric 的架构。

  该文档简介了新衬着器(new renderer)及其主题观念,它不搜罗平台细节和任何代码细节,它先容了主题观念、初志、收益和差异场景的衬着流程。

  Fabric 衬着器(Fabric Renderer):React Native 践诺的 React 框架代码,和 React 正在 Web 中践诺代码是统一份。不过,React Native 衬着的是通用平台视图(宿主视图)而不是 DOM 节点(可能以为 DOM 是 Web 的宿主视图)。Fabric 衬着器使得衬着宿主视图变得可行。Fabric 让 React 与各个平台直接通讯并解决其宿主视图实例。Fabric 衬着器存正在于 Java 中,而且它移用的是由 C++ 代码大白的接口。正在这篇作品中有更多闭于 React 衬着器的音讯。

  Fabric 衬着器(Fabric Renderer):React Native 践诺的 React 框架代码,和 React 正在 Web 中践诺代码是统一份。不过,React Native 衬着的是通用平台视图(宿主视图)而不是 DOM 节点(可能以为 DOM 是 Web 的宿主视图)。Fabric 衬着器使得衬着宿主视图变得可行。Fabric 让 React 与各个平台直接通讯并解决其宿主视图实例。Fabric 衬着器存正在于 Java 中,而且它移用的是由 C++ 代码大白的接口。正在这篇作品中有更多闭于 React 衬着器的音讯。

  开荒新的衬着架构的初志是为了更好的用户体验,而这种新体验是正在老架构上是弗成以完成的。例如:

  为了提拔宿主视图(host views)和 React 视图(React views)的互操作性,衬着器必需有才能同步地丈量和衬着 React 界面。正在老架构中,React Native 构造是异步的,这导致正在宿主视图中衬着嵌套的 React Native 视图,会有构造“颤动”的题目。

  借帮多优先级和同步事情的才能,衬着器可能抬高用户交互的优先级,来确保他们的操作取得实时的执掌。

  React Suspense 的集成,承诺你正在 React 中更契合直觉地写仰求数据代码。

  承诺你正在 React Native 运用 React Concurrent 可断绝衬着性能。

  类型安闲:代码天生器械(code generation)确保了 JS 和宿主平台两方面的类型安闲。代码天生器械运用 Java 组件声明举动独一究竟源,天生 C++ 构造体来持有 props 属性。不会由于 Java 和宿主组件 props 属性不行家而显现修筑差错。

  共享 C++ core:衬着器是用 C++ 完成的,其主题 core 正在平台之间是共享的。这增补了相仿性而且使得新的平台也许更容易采用 React Native。(译注:比方 VR 新平台)

  更好的宿主平台互操作性:当宿主组件集成到 React Native 时,同步和线程安闲的构造预备提拔了用户体验(译注:没有异步的颤动)。这意味着那些必要同步 API 的宿主平台库,变得更容易集成了。

  本能提拔:新的衬着编造的完成是跨平台的,每个平台都从那些蓝本只正在某个特定平台的完成的本能优化中,取得了收益。例如拍平视图层级,蓝本只是 Android 上的本能优化计划,现正在 Android 和 iOS 都直接有了。

  JS 和宿主平台之间的数据序列化更少:React 运用序列化 JSON 正在 Java 和宿主平台之间传达数据。新的衬着器用 JSI(Java Interface)直接获取 Java 数据。

  React Native 衬着器通过一系列加工处。