@lynx-js/react / built-in-macros
内置宏
@lynx-js/react 编译插件会处理 __BACKGROUND__ 和 __MAIN_THREAD__ 等内置宏定义。在编译过程中,条件为 false 的代码块会被自动移除。
__BACKGROUND__
- 类型:
boolean - 作用:控制后台运行时环境下的代码执行。用于确定编译后需要保留在后台代码中的代码段。
使用示例
在函数式组件中使用
以下是 App 组件的示例:
编译后,代码将转换为:
- 后台线程代码(编译中间产物目录的
background.js):
- 主线程代码(编译中间产物目录的
main-thread.js):
在类组件中使用
以下是 Conversations 组件的示例:
编译后,代码将转换为:
- 后台线程代码(编译中间产物目录的
background.js):
- 主线程代码(编译中间产物目录的
main-thread.js):
__MAIN_THREAD__
- 类型:
boolean - 作用:控制主线程运行时环境下的代码执行。用于确定编译后需要保留在主线程代码中的代码段。
使用示例
在函数式组件中使用
以下是 App 组件的示例:
编译后,代码将转换为:
- 后台线程代码(编译中间产物目录的
background.js):
- 主线程代码(编译中间产物目录的
main-thread.js):
在类组件中使用
以下是 Conversations 组件的示例:
编译后,代码将转换为:
- 后台线程代码(编译中间产物目录的
background.js):
- 主线程代码(编译中间产物目录的
main-thread.js):
__JS__
- 类型:
boolean - 作用:
__BACKGROUND__的别名。
已废弃
请改用 __BACKGROUND__。
__LEPUS__
- 类型:
boolean - 作用:
__MAIN_THREAD__的别名。
已废弃
请改用 __MAIN_THREAD__。
__DEV__
- 类型:
boolean - 作用:开发构建中为
true,生产构建中为false。用它包裹只在开发期需要的代码——prop 校验、不变量断言、更友好的报错信息——这些代码不会进入生产产物。
__PROFILE__
__REACT_DEVTOOL__
- 类型:
boolean | undefined - 作用:Preact DevTools 所依赖的运行时钩子被编译进产物时为
true。开发构建默认开启;生产构建可以用环境变量REACT_DEVTOOL=true打开。
__LAZY_BUNDLE_FETCHER__
- 类型:
'FetchBundle' | 'QueryComponent' - 作用:当前产物接入的是哪一种 lazy bundle 拉取方式。
'FetchBundle'走基于lynx.fetchBundle的路径(以及import(..., { with: { mode } })的 mode 提示),'QueryComponent'是旧的lynx.QueryComponent路径。取值如何选定、REACT_LAZY_BUNDLE_FETCHER覆盖方式以及版本范围,见懒加载 bundle 的加载器。