JS核心理论之《React Native原理浅析》
React Native是一个优秀的跨平台移动应用解决方案,可以让你轻松地使用React(和JavaScript)来创建native移动应用程序。 React Native 需要使用 JavaScript 引擎执行 JavaScript 代码,包括 JavaScriptCore、Hermes、V8。 随着Flutter等新框架的崛起,React Native正经受着越来越大的挑战,RN性能上的瓶颈愈发明显。为了在与Flutter等框架的对抗中保持竞争力, RN在架构上也进行了一次非常大的升级。 原有架构及问题 一共分四个部分: 用户编写的React代码 React代码转换之后的js The Bridge Native side 原有架构最大的问题 : 组件和 API 太过依赖 JSBridge 的初始化 ,而且通讯能力也局限于这一条通道。 JS和Native之间并不真正直接通信,它们的通信依赖于 跨Bridge传输的异步JSON消息 。 它们之间传递的信息,都要序列化为JSON之后进行异步传输。这样就造成一个比较常见的性能问题,比如快速滑动ListView的时候会白屏。 因为 JSBridge 的异步关系导致了 shadow 层最终呈现到原生的 UI 是异步的,而且滑动太快后会有大量的 UI 事件会阻塞在 JSBridge。 UI 的渲染过程分为三层: JS 业务层、shadow