メインコンテンツへスキップ

Recoil環境

RecoilEnv

RecoilEnvは、読み取りまたは設定できるRecoil環境変数を含むオブジェクトです。

  • RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED: boolean - NextJSなど、モジュールが正当に再ロードされる可能性のある環境、または開発中にReactの高速リフレッシュを使用する場合などに、重複するatom/selectorキーのチェックを無効化するために役立ちます。これは正当なエラーを含むすべてのチェックを無効にするため、慎重に使用してください。

  • 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デフォルトで有効) - atom定義で設定されている場合、atomとselectorの内容がコンポーネントによって使用されなくなったときに、自動的に解放するガベージコレクションを実装します。
    • recoil_transition_support - *_TRANSITION_SUPPORT_UNSTABLE()フックを使用する必要がない代わりに、ReactトランジションuseTransition()のサポートをデフォルトで有効にします。recoil_sync_external_storeよりも優先されます。

NodeJS

環境変数は、NextJsなどのNodeJS環境でも、process.envを設定することで初期化できます。process.envから設定された変数は、データ型に従って解析されます。

  • boolean - trueまたはfalse(大文字と小文字は区別されません)
  • Set<string> - スペースまたはコンマで区切られた文字列のリスト(例:a b cまたはa,b,c)。デフォルトでセットに存在する値に追加されます(現在、セット全体を上書きすることはできません)。