在我的 React 应用程序中,我需要存储一些几乎可以在任何地方访问的数据,但不想将其保存在全局(即静态)数据结构中,以便轻松模拟我的单元测试和时尚指南。
我的意思是例如:
- 浏览器构建和 Node.js 中
IN_BROWSER
的常量。true
false
IS_MOBILE
在浏览器启动时初始化的常量- 当前登录用户的数据,
- 我连接到的 API 的 url(它是 localhost、登台服务器或生产,取决于配置)
现在我有一个名为sessionData.js
存储这些数据的文件,每当我需要时,我都会require('./sessionData')
在我的代码中使用它。我可以使用它来模拟我的单元测试,rewire
并且当它们按顺序运行时,它现在可以正常工作。这对样式指南来说是有问题的,因为每个示例都可以从不同用户的角度显示视图(因此理想情况下,每个示例都有自己的sessionData
)。
IN_BROWSER
目前是 a global
,这也是一个坏主意,因为它对每个模块的初始化代码都有隐式依赖。
我看到我可以sessionData
通过道具将我的和其他的东西传递给层次结构中的每个组件,但这似乎有很多冗余。
有没有更好的设计模式来解决它?