React Native之原理浅析

如题所述

第1个回答  2022-07-15

原文链接

UI的描述和呈现分离开了

Javascript在react native里面非常重要

React Native它可不一样

React Native组件结构

在一定程度上,React Native和NodeJS有异曲同工之妙。它们都是通过扩展JavaScript Engine, 使它具备强大的本地资源和原生接口调用能力,然后结合JavaScript丰富的库和社区和及其稳定的跨平台能力,把javascript的魔力在浏览器之外的地方充分发挥出来

JavaScriptCore + ReactJS + Bridges 就成了React Native

RCTRootView做的事情如下

React Native的初始化分为几个步骤

这里需要提一下的是

JS Engine不直接管理UI的绘制

|

<pre style="box-sizing: border-box; overflow: auto hidden; font-family: PingFangSC-Regular, Roboto, Verdana, "Open Sans", "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans CN", "WenQuanYi Micro Hei", Arial, sans-serif; font-size: 1em; line-height: 1.5em; white-space: pre-wrap; overflow-wrap: break-word; margin: 0px; background-color: transparent;">- (NSDictionary *)constantsToExport
{
return @{ @"firstDayOfTheWeek": @"Monday" };// JS里面可以直接调用 ModuleName.firstDayOfTheWeek获取这个常量
}
</pre>

|

内部机制

JS用时序

Java层核心类及原理,如下所示

ReactContext

ReactInstanceManager

ReactRootView

CatalystInstance

JavaScriptModule

NativeModule

JavascriptModuleRegistry

NativeModuleRegistry

CoreModulePackage

Java 调用Js

Js 调用Java