Recoil 环境
RecoilEnv
RecoilEnv
是一个包含 Recoil 环境变量的对象,这些变量可以读取或设置。
RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED
:boolean
- 在环境中禁用重复原子/选择器键检查很有用,在这些环境中,模块可能被合法地重新加载,例如 NextJS,或者在开发期间使用 React 的快速刷新。由于这会禁用所有检查,包括合法错误,请谨慎使用。RECOIL_GKS_ENABLED
:Set<string>
- Recoil 包含一组不稳定的行为改变内部标志,称为守门员 (GK)。这些标志在测试、改进和稳定后逐渐整合到常规的 Recoil 版本中。此变量允许您选择加入更多标志,如果您想尝试新的实验性功能。要启用 GK,请在创建第一个
<RecoilRoot>
之前将其添加到集合中RecoilEnv.RECOIL_GKS_ENABLED.add('recoil_transition_support');
部分可用标志列表
recoil_hamt_2020
(默认启用) - 将Map<K, V>
实现切换到哈希数组映射树recoil_sync_external_store
(默认启用) - 如果所使用的 React 版本提供了它,则启用对useSyncExternalStore()
的支持。recoil_suppress_rerender_in_callback
(默认启用) - 当选择器值不改变时,通过引用相等性比较,避免重新渲染组件。recoil_memory_managament_2020
(默认启用) - 通过在原子定义中配置时,在原子和选择器不再被任何组件使用时自动释放其内容,实现垃圾收集。recoil_transition_support
- 默认启用对 React 过渡 和useTransition()
的支持,而不需要使用*_TRANSITION_SUPPORT_UNSTABLE()
钩子;优先于recoil_sync_external_store
。
NodeJS
环境变量也可以在 NodeJS 环境中初始化,例如 NextJs,方法是设置 process.env
。从 process.env
设置的变量将根据其数据类型进行解析
boolean
-true
或false
,不区分大小写Set<string>
- 一组以空格或逗号分隔的字符串,例如a b c
或a,b,c
,分别添加到集合中默认存在的任何值(目前无法覆盖整个集合)