原文地址:formidable.com/blog/2019/r…
原文作者:Lorenzo Sciandra
发布时间:2019年3月26日
第一部分:React和Codegen
React Native重新架构于2018年首次公布,是Facebook为解决这一跨平台移动解决方案的一些长期问题而进行的大规模努力。
在这个系列中,我们将对构成React Native新架构的主要元素进行概述。我们将避免展示代码,以使这一解释尽可能地易于理解,并将分享我们对这一新实现的兴奋。
在这第一篇文章中,我们将讨论重新架构的方面,这将实际影响到你可能编写的代码--新的React特性和一个名为Codegen的工具。
在我们深入了解之前,让我们先回顾一下基础知识。React Native是一个开源的跨平台解决方案,它可以让你轻松地使用React(和JavaScript)来创建完全原生的移动应用。它被广泛使用,不仅是Facebook(在周围开发社区的帮助下开发的),而且无论是亚马逊和微软这样的企业公司,还是创业公司都在使用它。
为了帮助可视化React Native的工作原理,我们准备了这张基本图。
正如你所看到的,有四个核心部分:你编写的React代码(与Web对应的代码非常相似),从你编写的代码中得到解释的JavaScript,一系列统称为 "桥 "的元素,以及Native方面。
当前架构的关键在于,JavaScript和Native这两个领域并不真正 "意识 "到对方。这意味着,为了进行通信,它们依靠异步JSON消息在The Bridge上传输。这些消息被发送到本地代码,并期望(但不保证)它们会在未来某个时间引起响应。
虽然这是一种直观的启动方式,而且多年来一直为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(新架构的元素,将在第三篇文章中展示)所需的接口文件,从而放心地跨域发送消息。这种自动化也会加快通信速度,因为不需要每次都验证数据。
总而言之,如果我们要用新的对应结构替换这第一块架构,变化会是这样的。
我们对重新架构的探索的第一部分到此结束。在接下来的几周里,我们将发布更多的文章来深入探讨其他元素。同时,记得与你的开发者朋友们分享这篇文章,或者在Twitter上联系后续问题(DMs是开放的)。
正如你可以想象的那样,这些变化为其他区块的更多改进打开了大门,我们希望它们能激发你的兴奋,让你知道这些强大的变化将如何影响你的代码库,而不需要重写(基本上)任何东西。
所有的人都登上了炒作的列车
其他部分。
通过www.DeepL.com/Translator (免费版)翻译