反衝的環境
RecoilEnv
RecoilEnv
是包含反衝環境變數的物件,可以在該物件中讀取或設定這些變數。
RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED
:boolean
- 在模組可能合法重新載入的環境中,例如 NextJS 或是在開發期間使用 React 的快速更新時,有用於停用重複原子/選擇器金鑰檢查。由於此操作會停用所有檢查(包含合法錯誤),因此請謹慎使用。RECOIL_GKS_ENABLED
:Set<string>
- 反衝包含一組稱為閘門守衛 (GKs) 的不穩定行為變更內部旗標。這些旗標會在經過測試、改善和穩定之後,逐漸納入常規的反衝版本。如果您想嘗試新的實驗性功能,此變數允許您選擇其他旗標。若要啟用 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
,會分別新增至預設設定中的任何值(目前無法覆寫整個設定)