ReactInstanceSettings
新架构
种类:class
提供用于创建 React 实例的设置。
属性
BundleAppId
string BundleAppId
通过“app”查询参数传递给打包器服务器的应用程序名称。这在从同一打包器实例捆绑多个应用程序时非常有用。如果未设置值,则不会传递该参数。
BundleRootPath
string BundleRootPath
默认值:ms-appx:///Bundle/
用于捆绑包位置的基路径。这可以是 ms-appx://
或 ms-appdata://
URI(如果应用程序是 UWP 或使用 MSIX 打包),文件系统路径,或指向嵌入资源的 URI。示例
ms-appx:///Bundle
- 在 MSIX 包中查找捆绑包。有关其他 UWP/MSIX 有效 URI 格式,请参阅URI 方案。C:\\foo\\bar
- 在本地文件系统中查找捆绑包。请注意UWP 应用程序文件访问权限。resource://moduleName
- 将捆绑包作为 moduleName 中的嵌入式 RCDATA 资源定位。在JavaScriptBundleFile
中指定资源 ID。resource://
- 将捆绑包作为正在运行进程的模块中的嵌入式 RCDATA 资源定位。在JavaScriptBundleFile
中指定资源 ID。
ByteCodeFileUri
string ByteCodeFileUri
将其设置为应用程序具有写入权限的位置,以便成功缓存字节码。请参阅EnableByteCodeCaching
。请注意,目前尚未为 UWP 应用程序实现字节码生成。
DebugBundlePath
string DebugBundlePath
从捆绑包服务器(例如 metro)加载时,这是将从服务器请求的路径。如果未提供此项,则使用JavaScriptBundleFile
的值。
DebuggerBreakOnNextLine
bool DebuggerBreakOnNextLine
对于直接调试,控制是否在执行的下一行 JavaScript 上中断。这有助于调试 JavaScript 捆绑包加载早期遇到的问题。注意:Chakra JS 引擎(目前使用的 JavaScript 引擎)不支持此功能。作为变通方法,您可以在捆绑包的开头添加 debugger
关键字。
DebuggerPort
uint16_t DebuggerPort
默认值:9229
当启用UseDirectDebugger
时,这控制 JavaScript 引擎调试器将运行的端口。
DebuggerRuntimeName
string DebuggerRuntimeName
调试时与 JavaScript 运行时关联的名称。此名称将显示在 edge://inspect 或其他调试器中要附加的 JavaScript 运行时列表中。
EnableByteCodeCaching
bool EnableByteCodeCaching
默认值:false
对于支持字节码生成的 JS 引擎,这控制是否在首次加载 JavaScript 捆绑包时生成字节码。应用程序的后续运行应更快,因为 JavaScript 将从字节码而不是原始 JavaScript 加载。ByteCodeFileUri
必须设置为应用程序具有写入权限的位置,以便成功缓存字节码。请注意,目前尚未为 UWP 应用程序实现字节码生成。
EnableDefaultCrashHandler
bool EnableDefaultCrashHandler
默认值:false
启用默认的未处理异常处理程序,该处理程序会将附加信息记录到文本文件中,以供Windows 错误报告使用。
EnableDeveloperMenu
bool EnableDeveloperMenu
已弃用:此属性已被
UseDeveloperSupport
取代。在 0.63 版本中,这两个属性的作用相同。它将在未来的版本中删除。
这控制此实例是否可用于各种开发人员体验功能。特别是开发人员菜单和默认的 RedBox
体验。
EnableJITCompilation
bool EnableJITCompilation
默认值:true
控制 JavaScript 引擎是否使用 JIT 编译的标志。
JSIEngineOverride
JSIEngine
JSIEngineOverride
默认值:JSIEngine.Chakra
与 React 实例一起使用的JSIEngine
覆盖。为了使覆盖生效,Microsoft.ReactNative 必须编译为支持该引擎。当UseWebDebugger
设置为 true 时,此覆盖将被忽略,因为浏览器必须使用自己的引擎才能正确调试。
JavaScriptBundleFile
string JavaScriptBundleFile
默认值:index.windows
要加载的 JavaScript 捆绑文件名称。这应该是相对于BundleRootPath
的路径。查找捆绑文件时,将附加.bundle
扩展名。如果使用嵌入式 RCDATA 资源,这将标识存储捆绑包的资源 ID。请参阅BundleRootPath
。
NativeLogger
LogHandler
NativeLogger
将作为 global.nativeLoggingHook 挂钩到 JavaScript 实例中的函数。这允许对 JavaScript 的控制台实现进行本机挂钩。如果未设置此项,则在调试版本中,日志将输出到本机调试输出,在发布版本中则不执行任何操作。
Notifications
readonly
IReactNotificationService
Notifications
获取 IReactNotificationService
以在组件和应用程序之间发送通知。使用 IReactContext.Notifications
从本机组件或视图管理器访问此 IReactNotificationService
。
PackageProviders
readonly
IVector
<IReactPackageProvider
> PackageProviders
获取 IReactPackageProvider
列表。将 IReactPackageProvider
的实现添加到此列表,以定义要包含在 React 实例中的附加本机模块和自定义视图管理器。自动链接会自动将 IReactPackageProvider
添加到应用程序的 PackageProviders
。
Properties
readonly
IReactPropertyBag
Properties
获取 IReactPropertyBag
以在组件和应用程序之间共享值。使用 IReactContext.Properties
从本机组件和视图管理器访问此 IReactPropertyBag
。
RedBoxHandler
IRedBoxHandler
RedBoxHandler
提供一个扩展点,允许在 React 实例中进行自定义错误处理。有关详细信息,请参阅IRedBoxHandler
。
RequestDevBundle
bool RequestDevBundle
向捆绑包服务器查询捆绑包时,是否请求开发捆绑包或发布捆绑包。
RequestInlineSourceMap
bool RequestInlineSourceMap
默认值:true
当使用UseFastRefresh
、UseLiveReload
或UseWebDebugger
时,这控制捆绑器是否应包含内联源映射。如果设置,捆绑器将内联包含源映射(这将改善调试体验,但对于非常大的捆绑包,可能会导致显著的性能下降)。
SourceBundleHost
string SourceBundleHost
默认值:localhost
当使用UseFastRefresh
、UseLiveReload
或UseWebDebugger
时,这是用于从其中加载捆绑包的服务器主机名。
SourceBundlePort
uint16_t SourceBundlePort
默认值:8081
当使用UseFastRefresh
、UseLiveReload
或UseWebDebugger
时,这是用于从其中加载捆绑包的服务器端口。
UIDispatcher
IReactDispatcher
UIDispatcher
控制 React 实例将使用的主 UI 调度程序。如果 ReactInstanceSettings
对象最初是在 UI 线程上创建的,则此项将默认为该线程。此处提供的值将可通过 IReactContext.UIDispatcher
供本机模块和视图管理器使用。
UseDeveloperSupport
bool UseDeveloperSupport
这控制此实例是否可用各种开发人员体验功能。特别是,它启用开发人员菜单、默认的 RedBox
和 LogBox
体验。
UseDirectDebugger
bool UseDirectDebugger
在 JavaScript 引擎中启用调试(如果支持)。对于 Chakra,这允许使用 Visual Studio -> 附加到进程 (Script) 直接在应用程序中调试 JS 运行时。
UseFastRefresh
bool UseFastRefresh
控制实例首次加载实例时是否触发热模块重新加载逻辑。大多数编辑应在一两秒内可见,而无需实例重新加载。不兼容的更改仍会导致完全重新加载。有关快速刷新 (Fast Refresh) 的更多信息,请参阅快速刷新。
UseLiveReload
bool UseLiveReload
已弃用:对于一般用途,此功能已被
UseFastRefresh
取代。
启用实时重新加载以从 React Native 打包器加载源捆绑包。保存文件后,打包器将触发重新加载。
UseWebDebugger
bool UseWebDebugger
已弃用:调试应使用 DirectDebugging 而不是 WebDebugger。Web 调试会改变应用程序行为,并将在未来的版本中删除。
控制实例 JavaScript 是否在远程环境(例如浏览器)中运行。默认情况下,这使用导航到 https://:8081/debugger-ui 的浏览器,由 Metro/Haul 提供服务。调试将在 React Native 实例加载后立即开始。
构造函数
ReactInstanceSettings
ReactInstanceSettings
()
事件
InstanceCreated
InstanceCreated (未解析的引用) 事件在 React Native 实例创建后立即触发。
它在 JSDispatcher 线程上,在任何其他 JSDispatcher 工作项之前触发。JavaScript 引擎中尚未加载任何 JavaScript 代码。InstanceCreatedEventArgs.Context
事件参数上的属性提供对实例上下文的访问。
请注意,InstanceCreated (未解析的引用) 事件是响应 'ReactNative.InstanceSettings' 命名空间中引发的 'InstanceCreated' 通知而触发的。考虑使用 Notifications (未解析的引用) 在与 JSDispatcher 不同的调度程序中处理通知。
类型:EventHandler
<InstanceCreatedEventArgs
>
InstanceDestroyed
InstanceDestroyed (未解析的引用) 事件在 React Native 实例被销毁时触发。
它在 JSDispatcher 线程上触发,作为关闭前的最后一个工作项。之后无法执行新的 JSDispatcher 工作。事件参数上的 InstanceDestroyedEventArgs.Context
属性提供对实例上下文的访问。
请注意,InstanceDestroyed (未解析的引用) 事件是响应 'ReactNative.InstanceSettings' 命名空间中引发的 'InstanceDestroyed' 通知而触发的。考虑使用 Notifications (未解析的引用) 在与 JSDispatcher 不同的调度程序中处理通知。
类型:EventHandler
<InstanceDestroyedEventArgs
>
InstanceLoaded
InstanceLoaded (未解析的引用) 事件在 React Native 实例完成加载 JavaScript 捆绑包时触发。
它在 JSDispatcher 线程上触发。如果存在错误,则事件参数上的 InstanceLoadedEventArgs.Failed
属性将为 true。错误类型包括:
- JavaScript 语法错误。
- 抛出的全局 JavaScript 异常。
事件参数上的 InstanceLoadedEventArgs.Context
属性提供对实例上下文的访问。
请注意,InstanceLoaded (未解析的引用) 事件是响应 'ReactNative.InstanceSettings' 命名空间中引发的 'InstanceLoaded' 通知而触发的。考虑使用 Notifications (未解析的引用) 在与 JSDispatcher 不同的调度程序中处理通知。
类型:EventHandler
<InstanceLoadedEventArgs
>
被引用方
旧架构
种类:class
提供用于创建 React 实例的设置。
Properties
BundleAppId
string BundleAppId
通过“app”查询参数传递给打包器服务器的应用程序名称。这在从同一打包器实例捆绑多个应用程序时非常有用。如果未设置值,则不会传递该参数。
BundleRootPath
string BundleRootPath
默认值:ms-appx:///Bundle/
用于捆绑包位置的基路径。这可以是 ms-appx://
或 ms-appdata://
URI(如果应用程序是 UWP 或使用 MSIX 打包),文件系统路径,或指向嵌入资源的 URI。示例
ms-appx:///Bundle
- 在 MSIX 包中查找捆绑包。有关其他 UWP/MSIX 有效 URI 格式,请参阅URI 方案。C:\\foo\\bar
- 在本地文件系统中查找捆绑包。请注意UWP 应用程序文件访问权限。resource://moduleName
- 将捆绑包作为 moduleName 中的嵌入式 RCDATA 资源定位。在JavaScriptBundleFile
中指定资源 ID。resource://
- 将捆绑包作为正在运行进程的模块中的嵌入式 RCDATA 资源定位。在JavaScriptBundleFile
中指定资源 ID。
ByteCodeFileUri
string ByteCodeFileUri
将其设置为应用程序具有写入权限的位置,以便成功缓存字节码。请参阅EnableByteCodeCaching
。请注意,目前尚未为 UWP 应用程序实现字节码生成。
DebugBundlePath
string DebugBundlePath
从捆绑包服务器(例如 metro)加载时,这是将从服务器请求的路径。如果未提供此项,则使用JavaScriptBundleFile
的值。
DebuggerBreakOnNextLine
bool DebuggerBreakOnNextLine
对于直接调试,控制是否在执行的下一行 JavaScript 上中断。这有助于调试 JavaScript 捆绑包加载早期遇到的问题。注意:Chakra JS 引擎(目前使用的 JavaScript 引擎)不支持此功能。作为变通方法,您可以在捆绑包的开头添加 debugger
关键字。
DebuggerPort
uint16_t DebuggerPort
默认值:9229
当启用UseDirectDebugger
时,这控制 JavaScript 引擎调试器将运行的端口。
DebuggerRuntimeName
string DebuggerRuntimeName
调试时与 JavaScript 运行时关联的名称。此名称将显示在 edge://inspect 或其他调试器中要附加的 JavaScript 运行时列表中。
EnableByteCodeCaching
bool EnableByteCodeCaching
默认值:false
对于支持字节码生成的 JS 引擎,这控制是否在首次加载 JavaScript 捆绑包时生成字节码。应用程序的后续运行应更快,因为 JavaScript 将从字节码而不是原始 JavaScript 加载。ByteCodeFileUri
必须设置为应用程序具有写入权限的位置,以便成功缓存字节码。请注意,目前尚未为 UWP 应用程序实现字节码生成。
EnableDefaultCrashHandler
bool EnableDefaultCrashHandler
默认值:false
启用默认的未处理异常处理程序,该处理程序会将附加信息记录到文本文件中,以供Windows 错误报告使用。
EnableDeveloperMenu
bool EnableDeveloperMenu
已弃用:此属性已被
UseDeveloperSupport
取代。在 0.63 版本中,这两个属性的作用相同。它将在未来的版本中删除。
这控制此实例是否可用于各种开发人员体验功能。特别是开发人员菜单和默认的 RedBox
体验。
EnableJITCompilation
bool EnableJITCompilation
默认值:true
控制 JavaScript 引擎是否使用 JIT 编译的标志。
JSIEngineOverride
JSIEngine
JSIEngineOverride
默认值:JSIEngine.Chakra
与 React 实例一起使用的JSIEngine
覆盖。为了使覆盖生效,Microsoft.ReactNative 必须编译为支持该引擎。当UseWebDebugger
设置为 true 时,此覆盖将被忽略,因为浏览器必须使用自己的引擎才能正确调试。
JavaScriptBundleFile
string JavaScriptBundleFile
默认值:index.windows
要加载的 JavaScript 捆绑文件名称。这应该是相对于BundleRootPath
的路径。查找捆绑文件时,将附加.bundle
扩展名。如果使用嵌入式 RCDATA 资源,这将标识存储捆绑包的资源 ID。请参阅BundleRootPath
。
NativeLogger
LogHandler
NativeLogger
将作为 global.nativeLoggingHook 挂钩到 JavaScript 实例中的函数。这允许对 JavaScript 的控制台实现进行本机挂钩。如果未设置此项,则在调试版本中,日志将输出到本机调试输出,在发布版本中则不执行任何操作。
Notifications
readonly
IReactNotificationService
Notifications
获取 IReactNotificationService
以在组件和应用程序之间发送通知。使用 IReactContext.Notifications
从本机组件或视图管理器访问此 IReactNotificationService
。
PackageProviders
readonly
IVector
<IReactPackageProvider
> PackageProviders
获取 IReactPackageProvider
列表。将 IReactPackageProvider
的实现添加到此列表,以定义要包含在 React 实例中的附加本机模块和自定义视图管理器。自动链接会自动将 IReactPackageProvider
添加到应用程序的 PackageProviders
。
Properties
readonly
IReactPropertyBag
Properties
获取 IReactPropertyBag
以在组件和应用程序之间共享值。使用 IReactContext.Properties
从本机组件和视图管理器访问此 IReactPropertyBag
。
RedBoxHandler
IRedBoxHandler
RedBoxHandler
提供一个扩展点,允许在 React 实例中进行自定义错误处理。有关详细信息,请参阅IRedBoxHandler
。
RequestDevBundle
bool RequestDevBundle
向捆绑包服务器查询捆绑包时,是否请求开发捆绑包或发布捆绑包。
RequestInlineSourceMap
bool RequestInlineSourceMap
默认值:true
当使用UseFastRefresh
、UseLiveReload
或UseWebDebugger
时,这控制捆绑器是否应包含内联源映射。如果设置,捆绑器将内联包含源映射(这将改善调试体验,但对于非常大的捆绑包,可能会导致显著的性能下降)。
SourceBundleHost
string SourceBundleHost
默认值:localhost
当使用UseFastRefresh
、UseLiveReload
或UseWebDebugger
时,这是用于从其中加载捆绑包的服务器主机名。
SourceBundlePort
uint16_t SourceBundlePort
默认值:8081
当使用UseFastRefresh
、UseLiveReload
或UseWebDebugger
时,这是用于从其中加载捆绑包的服务器端口。
UIDispatcher
IReactDispatcher
UIDispatcher
控制 React 实例将使用的主 UI 调度程序。如果 ReactInstanceSettings
对象最初是在 UI 线程上创建的,则此项将默认为该线程。此处提供的值将可通过 IReactContext.UIDispatcher
供本机模块和视图管理器使用。
UseDeveloperSupport
bool UseDeveloperSupport
这控制此实例是否可用各种开发人员体验功能。特别是,它启用开发人员菜单、默认的 RedBox
和 LogBox
体验。
UseDirectDebugger
bool UseDirectDebugger
在 JavaScript 引擎中启用调试(如果支持)。对于 Chakra,这允许使用 Visual Studio -> 附加到进程 (Script) 直接在应用程序中调试 JS 运行时。
UseFastRefresh
bool UseFastRefresh
控制实例首次加载实例时是否触发热模块重新加载逻辑。大多数编辑应在一两秒内可见,而无需实例重新加载。不兼容的更改仍会导致完全重新加载。有关快速刷新 (Fast Refresh) 的更多信息,请参阅快速刷新。
UseLiveReload
bool UseLiveReload
已弃用:对于一般用途,此功能已被
UseFastRefresh
取代。
启用实时重新加载以从 React Native 打包器加载源捆绑包。保存文件后,打包器将触发重新加载。
UseWebDebugger
bool UseWebDebugger
已弃用:调试应使用 DirectDebugging 而不是 WebDebugger。Web 调试会改变应用程序行为,并将在未来的版本中删除。
控制实例 JavaScript 是否在远程环境(例如浏览器)中运行。默认情况下,这使用导航到 https://:8081/debugger-ui 的浏览器,由 Metro/Haul 提供服务。调试将在 React Native 实例加载后立即开始。
Constructors
ReactInstanceSettings
ReactInstanceSettings
()
Events
InstanceCreated
InstanceCreated (未解析的引用) 事件在 React Native 实例创建后立即触发。
它在 JSDispatcher 线程上,在任何其他 JSDispatcher 工作项之前触发。JavaScript 引擎中尚未加载任何 JavaScript 代码。InstanceCreatedEventArgs.Context
事件参数上的属性提供对实例上下文的访问。
请注意,InstanceCreated (未解析的引用) 事件是响应 'ReactNative.InstanceSettings' 命名空间中引发的 'InstanceCreated' 通知而触发的。考虑使用 Notifications (未解析的引用) 在与 JSDispatcher 不同的调度程序中处理通知。
类型:EventHandler
<InstanceCreatedEventArgs
>
InstanceDestroyed
InstanceDestroyed (未解析的引用) 事件在 React Native 实例被销毁时触发。
它在 JSDispatcher 线程上触发,作为关闭前的最后一个工作项。之后无法执行新的 JSDispatcher 工作。事件参数上的 InstanceDestroyedEventArgs.Context
属性提供对实例上下文的访问。
请注意,InstanceDestroyed (未解析的引用) 事件是响应 'ReactNative.InstanceSettings' 命名空间中引发的 'InstanceDestroyed' 通知而触发的。考虑使用 Notifications (未解析的引用) 在与 JSDispatcher 不同的调度程序中处理通知。
类型:EventHandler
<InstanceDestroyedEventArgs
>
InstanceLoaded
InstanceLoaded (未解析的引用) 事件在 React Native 实例完成加载 JavaScript 捆绑包时触发。
它在 JSDispatcher 线程上触发。如果存在错误,则事件参数上的 InstanceLoadedEventArgs.Failed
属性将为 true。错误类型包括:
- JavaScript 语法错误。
- 抛出的全局 JavaScript 异常。
事件参数上的 InstanceLoadedEventArgs.Context
属性提供对实例上下文的访问。
请注意,InstanceLoaded (未解析的引用) 事件是响应 'ReactNative.InstanceSettings' 命名空间中引发的 'InstanceLoaded' 通知而触发的。考虑使用 Notifications (未解析的引用) 在与 JSDispatcher 不同的调度程序中处理通知。
类型:EventHandler
<InstanceLoadedEventArgs
>