私の React アプリでは、どこからでもアクセスできるようにする必要があるデータを保存する必要がありますが、単体テストとスタイルガイド。
私が意味するデータは、たとえば次のとおりです。
- ブラウザのビルドと Node.js にある定数
IN_BROWSER
です。true
false
IS_MOBILE
ブラウザの起動時に初期化される定数- 現在ログインしているユーザーのデータ、
- 接続先の API の URL (構成に応じて、ローカルホスト、ステージング サーバー、またはプロダクション)
現在sessionData.js
、このデータを格納する という名前のファイルがあり、必要なときはいつでもrequire('./sessionData')
自分のコードでそれを使用します。を使用して単体テスト用にモックできますrewire
。それらは順次実行されるため、今のところ問題なく動作します。各例が異なるユーザーの視点からビューを表示できるため、スタイルガイドにとっては問題があります (理想的には、各例には独自の がありますsessionData
)。
IN_BROWSER
これはglobal
、すべてのモジュールの初期化コードに暗黙の依存関係を置くため、これも悪い考えであることが判明しました。
sessionData
階層の下のすべてのコンポーネントに小道具を介して自分のものや他のものを渡すことができることがわかりましたが、これは多くの冗長性のようです。
それをよりよく解決するための設計パターンはありますか?