【问题标题】:Correct way to have a global variable in react在反应中有一个全局变量的正确方法
【发布时间】:2018-01-09 17:49:32
【问题描述】:

我正在开发一个 react.js 项目,在渲染主要组件之前,我调用了一个函数,该函数返回一个所有组件都应该能够访问的对象。在反应中这样做的正确方法是什么?目前,我只是将它作为道具传递给主要组件,然后我想我应该记住将它作为道具传递给所有其他组件。有没有更简单或更好的方法?

【问题讨论】:

标签: javascript reactjs global-variables components


【解决方案1】:

看起来你正在做类似 Redux 的事情。将对象作为道具传递应该没问题。您可以制作一个高阶组件来包装您的组件并通过道具添加对该全局对象的访问。这类似于 Redux 的connect

【讨论】:

    【解决方案2】:

    由于 React 中的期望是应用程序范围的关注点,例如 Flux/redux/apollo 存储,保存在根提供程序组件的上下文中,然后通过高阶组件或渲染道具在组件树的其他地方访问。这可以减轻全局和循环依赖,并使测试这些组件更容易。

    但是,如果您有需要访问配置值的非组件代码,您可能需要使用 config 全局并以接受来自 props 的配置值的方式编写组件。

    见:https://github.com/lorenwest/node-config

    【讨论】:

    • 只有一个导出文件或类似的东西会更简单吗?我想在全球范围内使用我想要的所有东西还是这是不好的做法?
    • 敏感值(会话秘密、数据库密码等)和仅限服务器的问题应继续通过安全的环境变量加载(最好使用 node-config as 因为 node-config 是服务器端模块它只读取文件)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    相关资源
    最近更新 更多