【翻译】全新 React Native 架构详解:第一部分

4 阅读4分钟

原文链接:nearform.com/digital-com…

作者:Lorenzo Sciandra

第一部分:React 与代码生成

React Native重构计划始于2018年,这是Facebook为解决该跨平台移动解决方案长期存在的问题所进行的重大努力。

本系列文章将概述构成React Native新架构的核心要素。为使说明尽可能通俗易懂,我们将避免展示代码,同时分享我们对这项新实现的兴奋之情。

首篇文章将聚焦重构中直接影响开发者代码的部分——全新的 React 功能与名为 Codegen 的工具。

在深入探讨前,让我们回顾基础概念:React Native作为开源跨平台解决方案,能轻松实现用React(及JavaScript)创建原生移动应用。其应用范围广泛,不仅被Facebook(在开发者社区协助下持续完善)采用,亚马逊、微软等企业巨头与初创公司同样广泛使用。

为直观展示React Native的工作原理,我们绘制了以下基础示意图: 如您所见,该架构包含四个核心部分:您编写的 React 代码(与网页端实现高度相似)、由您编写的代码生成的解释型 JavaScript、统称为“桥梁”的一系列组件,以及原生端。

当前架构的关键特征在于:JavaScript与原生代码两个领域彼此之间并无真正的"感知"。这意味着它们需要通过桥接器传输异步JSON消息进行通信。这些消息被发送至原生代码时,系统期望(但无法保证)未来某个时刻能收到响应。

虽然这种异步消息机制作为起点颇具直观性,且多年来为React Native提供了良好支持,但Facebook团队希望重新思考这种异步消息方案以突破其局限性:为此,他们正在为React Native打造全新架构。其策略可概括为:对React Native的四个核心模块分别进行独立优化。本文将阐述团队如何着手改进首个模块——React。

React Native团队在很大程度上借鉴了核心React库开发者的工作成果。这意味着新版React Native将能够充分利用去年ReactConf 2018大会上发布的所有新特性(完整回顾请参见此处)。尤其值得关注的是,Andrew Clark展示了并发模式和同步事件回调的概念——这些功能自React 16.6起可用——正如我们在第三篇文章中将看到的,它们实现了若干重要的底层功能。

在可预见的未来,新版本 React 的功能同步将是重构中唯一影响大多数 React Native 开发者代码的变更——通过 Suspense 让组件在渲染前"等待"某些操作,并借助 Hooks 无需编写类即可使用状态及其他 React 功能。

React Native团队正全力推进代码中静态类型检查器的应用(支持Flow或TypeScript)。其重点开发工具CodeGen旨在"自动化"实现JS与原生端的兼容性。通过将类型化 JavaScript 作为权威数据源,该生成器可定义 Fabric 和 TurboModules(新架构的组成部分,将在第三篇文章中展示)所需的接口文件,从而实现跨领域消息传递的可靠性。这种自动化还将加速通信过程,因为无需每次都验证数据。

综上所述,若将架构的首个模块替换为其新对应版本—— 至此,我们对重构架构的第一部分探索告一段落。未来几周我们将陆续发布更多文章,深入探讨其他要素。在此期间,请记得将本文分享给开发者同仁,或通过推特(私信通道已开通)提出后续问题。

想必各位已预见到,这些变革将为其他模块带来更多优化空间。我们期待这些强大改进能激发您的热情——它们将彻底改变您的代码库,却无需(基本)重写任何内容。

快上这趟期待列车吧!

后续篇章:

第二部分 | 第三部分 | [第四部分](Part 4)