接口: PluginReactLynxOptions
pluginReactLynx 的选项
属性
compat?
optionalcompat?:Partial<CompatVisitorConfig> &object
compat 选项用于控制与旧版 ReactLynx 的兼容性。
类型声明
disableCreateSelectorQueryIncompatibleWarning?
optionaldisableCreateSelectorQueryIncompatibleWarning?:boolean
是否关闭使用与 ReactLynx2.0 不兼容的 SelectorQuery API 时的运行时警告。
示例
默认情况下,使用以下 API 会产生运行时警告:
默认值
false
备注
这些选项仅应在从 ReactLynx2.0 迁移或面向旧版 ReactLynx3 运行时时使用。
默认值
undefined
customCSSInheritanceList?
optionalcustomCSSInheritanceList?:string[]
启用 PluginReactLynxOptions.enableCSSInheritance 后,可以通过 customCSSInheritanceList 控制哪些属性可继承,而不仅限于默认属性。
示例
设置 customCSSInheritanceList: ['direction', 'overflow'] 后,只有 direction 和 overflow 属性可继承。
默认值
undefined
debugInfoOutside?
optionaldebugInfoOutside?:boolean
debugInfoOutside 控制调试信息是否放在模板之外。
备注
推荐设置为 true 以减小模板体积。
默认值
true
defaultDisplayLinear?
optionaldefaultDisplayLinear?:boolean
defaultDisplayLinear 控制 CSS 中 display 的默认值是否为 linear。
如果 defaultDisplayLinear === false,display 的默认值将为 flex 而非 linear。
默认值
true
defineDCE?
optionaldefineDCE?:Partial<DefineDceVisitorConfig>
类似各类打包工具中的 define,但它在转换阶段执行,并会执行一次死代码消除(DCE)。
默认值
undefined
enableAccessibilityElement?
optionalenableAccessibilityElement?:boolean
enableAccessibilityElement 用于设置所有 <view /> 元素的 accessibility-element 默认值。
默认值
false
enableCSSInheritance?
optionalenableCSSInheritance?:boolean
enableCSSInheritance 用于启用默认的继承属性。
备注
以下属性默认可继承:
-
direction -
color -
font-family -
font-size -
font-style -
font-weight -
letter-spacing -
line-height -
line-spacing -
text-align -
text-decoration -
text-shadow
推荐与 PluginReactLynxOptions.customCSSInheritanceList 一起使用,以避免性能问题。
默认值
false
enableCSSInvalidation?
optionalenableCSSInvalidation?:boolean
CSS Invalidation 是指在 DOM 更新时,确定哪些元素需要重新计算样式的过程。
示例
备注
当使用组合器(combinator)确定各元素的样式(包括后代、相邻兄弟等)时,推荐启用此功能。否则只有初始设置的 class 能匹配对应的组合器,后续更新不会重新计算相关样式。
我们发现收集 invalidation 节点并进行更新是一个相对耗时的过程。如果没有此类用法,且需要更好的样式匹配性能,可以选择性地关闭此功能。
默认值
true
enableCSSSelector?
optionalenableCSSSelector?:boolean
enableCSSSelector 控制是否启用新的 CSS 实现。
默认值
true
enableNewGesture?
optionalenableNewGesture?:boolean
enableNewGesture 用于启用新的手势系统。
默认值
false
enableRemoveCSSScope?
optionalenableRemoveCSSScope?:boolean
enableRemoveCSSScope 控制是否将 CSS 限制在组件作用域内使用。
true:所有 CSS 文件都被视为全局 CSS。
false:所有 CSS 文件都被视为作用域 CSS,仅在显式导入它的组件中生效。
undefined:仅对 CSS Modules 使用作用域 CSS,其他 CSS 文件视为全局 CSS。作用域 CSS 比全局 CSS 更快,因此如果遇到性能问题,可以使用 CSS Modules 来加速 CSS。
默认值
true
enableSSR?
optionalenableSSR?:boolean
enableSSR 为本次构建启用 Lynx SSR 功能。
默认值
false
enableUiSourceMap?
optionalenableUiSourceMap?:boolean
在主线程转换中生成 UI source map。
默认值
false
engineVersion?
optionalengineVersion?:string
engineVersion 指定 App bundle 正常运行所需的最低 Lynx Engine 版本。
默认值
'3.2'
experimental_isLazyBundle?
optionalexperimental_isLazyBundle?:boolean
Alpha
生成独立的 lazy bundle。
默认值
false
experimental_transformBuiltinAttributeNames?
optionalexperimental_transformBuiltinAttributeNames?:boolean|TransformBuiltinAttributeNamesOptions
Experimental
转换 Lynx 内置元素上的属性名。
备注
false 表示禁用转换。true 表示应用默认规则:
onClick 变为 bindtap,onCatchTap 变为 catchtap,其他
onXXX 名称变为 bindxxx,其余 camelCase 名称变为
dash-case。传入对象时可提供可序列化的自定义规则。rename 中的精确条目优先于 preserve,其次是由 mode 选择的兜底行为。
显式的 JSX 属性会在编译时转换。通过 JSX spread 传入的属性会在运行时按照相同的规则转换。
默认值
false
experimental_useElementTemplate?
optionalexperimental_useElementTemplate?:boolean
Experimental
启用 Element Template 的编译与运行时入口。
默认值
false
extractStr?
optionalextractStr?:boolean|Partial<ExtractStrConfig>
合并 JS 和 Lepus 中相同的字符串字面量,以减小输出 bundle 的体积。
设为 false 可关闭此功能。
默认值
firstScreenSyncTiming?
optionalfirstScreenSyncTiming?:"immediately"|"jsReady"|"manual"
此标志控制首屏之后主线程(Lepus)何时将控制权移交给后台线程
此标志有三个选项:
"immediately":立即移交
"jsReady":在后台线程(JS Runtime)就绪时移交
"manual":在业务调用 @lynx-js/react 导出的 markFirstScreenSyncReady() API 时移交,移交时机完全由用户控制
移交控制权后,主线程(Lepus)运行时将无法再响应数据更新,数据更新会被转发到后台线程(JS Runtime)并 异步 处理
默认值
globalPropsMode?
optionalglobalPropsMode?:"reactive"|"event"
配置 lynx.__globalProps 的更新模式。
此标志有两个选项:
'reactive':UpdateGlobalProps 会自动触发更新。
'event':UpdateGlobalProps 会触发全局事件,用户需要在事件处理函数中触发更新。
默认值
'reactive'
optimizeBundleSize?
optionaloptimizeBundleSize?:boolean| {background?:boolean;mainThread?:boolean; }
通过 Minify.mainThreadOptions 和 Minify.backgroundOptions 移除未使用的代码,以优化 bundle 体积。
当 optimizeBundleSize 或 optimizeBundleSize.mainThread 为 true 时,会优化主线程代码。当 optimizeBundleSize 或 optimizeBundleSize.background 为 true 时,会优化后台线程代码。
默认值
false
removeDescendantSelectorScope?
optionalremoveDescendantSelectorScope?:boolean
removeDescendantSelectorScope 用于移除后代选择器的作用域。
默认值
true
shake?
optionalshake?:Partial<ShakeVisitorConfig>
主线程代码的 shake 方式。
默认值
undefined
targetSdkVersion?
optionaltargetSdkVersion?:string
targetSdkVersion 用于指定 App bundle 可运行的最低 Lynx Engine 版本。
默认值
'3.2'
已被弃用
targetSdkVersion 现在是 PluginReactLynxOptions.engineVersion 的别名,请改用 PluginReactLynxOptions.engineVersion。