Built-in Macros
@lynx-js/react 包会处理内置宏定义,例如 __BACKGROUND__ 和 __MAIN_THREAD__。在编译期间,条件为 false 的代码块会被自动移除。
__BACKGROUND__
- 类型:
boolean - 作用:控制代码在后台线程环境中的执行。用于确定编译后哪些代码片段应保留在后台线程代码中。
Usage Examples
In Function Components
下面是一个使用 App 组件的示例:
编译后,这段代码会被转换为:
- 后台线程代码(编译中间目录中的
background.js):
- 主线程代码(编译中间目录中的
main-thread.js):
In Class Components
下面是一个使用 Conversations 组件的示例:
编译后,这段代码会被转换为:
- 后台线程代码(编译中间目录中的
background.js):
- 主线程代码(编译中间目录中的
main-thread.js):
__MAIN_THREAD__
- 类型:
boolean - 作用:控制代码在主线程环境中的执行。用于确定编译期间哪些代码片段应保留在主线程代码中。
Usage Examples
In Function Components
下面是一个使用 App 组件的示例:
编译后,这段代码会被转换为:
- 后台线程代码(编译中间目录中的
background.js):
- 主线程代码(编译中间目录中的
main-thread.js):
In Class Components
下面是一个使用 Conversations 组件的示例:
编译后,这段代码会被转换为:
- 后台线程代码(编译中间目录中的
background.js):
- 主线程代码(编译中间目录中的
main-thread.js):
__JS__
- 类型:
boolean - 作用:
__BACKGROUND__的别名。
已废弃
请改用 __BACKGROUND__。
__LEPUS__
- 类型:
boolean - 作用:
__MAIN_THREAD__的别名。
已废弃
请改用 __MAIN_THREAD__。
__DEV__
- 类型:
boolean - 作用:开发构建中为
true,生产构建中为false。用它来包裹仅用于开发环境的代码——属性校验、不变量检查、更友好的错误信息——确保这些代码不会进入生产环境。
__PROFILE__
- 类型:
boolean - 作用:当构建携带 profiling 埋点时为
true。开发环境下默认开启,生产环境下默认关闭。关于它产生的 trace,参见 Performance Profiling;关于如何在生产构建中开启它,参见 Runtime Profiling。
__REACT_DEVTOOL__
- 类型:
boolean | undefined - 作用:当 Preact DevTools 所依赖的运行时 hook 被编译进产物时为
true。开发环境下默认启用;生产环境下可以通过REACT_DEVTOOL=true环境变量启用。
__LAZY_BUNDLE_FETCHER__
- 类型:
'FetchBundle' | 'QueryComponent' - 作用:构建接入的是哪种 lazy bundle fetcher。
'FetchBundle'会启用基于lynx.fetchBundle的路径(以及import(..., { with: { mode } })的 mode 提示);'QueryComponent'是旧版的lynx.QueryComponent路径。该值如何被选定、REACT_LAZY_BUNDLE_FETCHER覆盖项以及版本范围,详见 Lazy bundle loaders。