一文了解RN新架构的变化点

RN新架构推出了一段时间了,而且在0.68版开始支持选择性启用。

从官方文档中不难看出,Facebook对于新架构提升应用的性能优化还是寄予了很大厚望的,毕竟也算是大幅度的重构了,相信再之后的版本更新中也将默认开启新架构的支持,对于开发者来说框架底层的优化,能更加明显的提高应用性能,也能提高用户的体验感。

那新架构有哪些具体的变化呢?这篇文章就简单列举一下,主要包括通信,引擎,Fabric,TurboModules及Godegen.

  • 通信,JSI替换bridge,性能大幅提升,JSI无需异步序列号与反序列化过程,可实现同步的JavaScript和原生Java或者OC的通讯,同事原有bridge数据通讯采用JSON和基础类型,而JSI还支持JSI Object
  • JavaScript引擎,JSI作为JSC之上的抽象,JSI用来屏蔽JavaScript引擎的差异,允许换用不同的JS引擎(JSC、V8、Hermes)
  • Fabric,对标就架构的UIManager,FabricUIManager可以和C++层直接进行通讯,解除了原有的UIManager依赖单个bridge的问题,有了JSI后,以前批量依赖bridge的UI操作,都可以同步的执行到C++层,性能得到大幅提升,特别是在列表快速滑动、复杂动画交互方面
  • TurboModules, 旧架构Native Modules需要在启动时全部初始化,影响启动速度,TurboModules允许按需加载Native模块,并在模块初始化之后直接持有其引用,不在依靠消息通信来调用模块功能
  • GodeGen, 新架构UI增加了C++层的shadow、component层,而且大部分组件都是基于JSI,因而开发UI组件和API的流程更复杂了,要求开发者具有C++、JNI的编程能力,为了方便开发者快速开发Facebook也提供了codegen工具,帮助生成一些自动化的代码

新架构整体变化一览图示:

一文了解RN新架构的变化点


参考资料:

新架构:https://reactnative.cn/docs/the-new-architecture/landing-page

极客时间:React Native 新架构实战课


新的一周开始了,

加油呀!

— END —


原文始发于微信公众号(君伟说):一文了解RN新架构的变化点

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/115148.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!