React Native JSExecutor

React Native一般情况下有两种运行方式:

1、远程模式

2、真机或者模拟器

React Native对不同运行模式提供了不同的JSExecutor来执行JS代码。

Platform: IOS

React Native: 0.47.2

React: 16.0.0-alpha.12

JSExecutorFactory

抽象工厂类。

JSCExecutorFactory

具体工厂类,负责创建JSCExecutor,c++实现。

头文件:cxxreact/JSCExecutor.h

源文件:cxxreact/JSCExecutor.app

RCTObjcExecutorFactory

具体工厂类,负责创建RCTObjcExecutor,objc实现。

头文件: cxxBridge/RCTObjcExecutor.h

源文件:cxxBridge/RCTObjcExecutor.mm

JSExecutorFactory类关系图如下:

React Native JSExecutor_第1张图片

JSExecutor

执行JS代码的抽象类。

JSCExecutor

真机或者模拟器模式下执行JS代码的JSExecutor实现。

RCTObjcExecutor

远程模式下执行JS代码的JSExecutor实现。

RCTJavaScriptExecutor

RCTJavaScriptExecutor是一个抽象JavaScript Execution Context协议,主要有两个实现:

1、RCTWebSocketExecutor

2、 RCTJSCExecutor ,这个似乎已经废弃,找不到调用了

RCTObjcExecutor内部引用了一个RCTJavaScriptExecutor协议句柄,该句柄代理了RCTObjcExecutor所有对JS的调用。

JSExecutor类关系图如下:

React Native JSExecutor_第2张图片

小结

整个抽象工厂模式类关系图如下:

React Native JSExecutor_第3张图片

JSCExecutorFactory具体工厂负责创建JSCExecutor,默认情况下采用JSCExecutor实例来执行JS代码。

RCTObjcExecutorFactory具体工厂负责创建RCTObjcExecutor,远程模式下,由RCTObjcExecutor实例中的RCTWebSocketExecutor实例来执行JS代码。

你可能感兴趣的:(React Native JSExecutor)