你应该用 React Context Provider 包装你的整个应用程序吗?

Posted

技术标签:

【中文标题】你应该用 React Context Provider 包装你的整个应用程序吗?【英文标题】:Should you wrap your whole app with a React Context Provider? 【发布时间】:2019-11-11 17:19:32 【问题描述】:

如果用户通过身份验证并通过React Context API 访问,我想保存一个简单的布尔+用户ID。

许多指南用上下文提供者包装了它们的根组件。对我来说,包装整个应用程序似乎很浪费。另一方面,我需要这些信息在我的所有主页中都可用。

使用 React Context Provider 包装整个应用程序是否有任何负面影响?

例子:

class App extends Component 
render() 
    return (
        <MyProvider>
            <div className="App">
                    <h1 className="App-title">Welcome to my web store</h1>
                <ProductList />
            </div>
        </MyProvider>
    );

我使用this guide 作为参考。

我在 React Redux 方面没有任何经验,所以这对于以前使用过这个框架的每个人来说都是很自然的。

研究 Google 带来了许多关于如何实现 React Context 或使用 HOC 的指南,但我点击的 15 个没有回答我的问题。

【问题讨论】:

您可以将整个应用程序包装在提供程序中。 React-redux 推荐相同的 (react-redux.js.org/introduction/…),所以你可以认为它是可以接受的做法 如果您打算在整个应用程序中使用上下文,那么可以。 写是作为答案,所以我可以接受。 【参考方案1】:

@Fyodor 在他的评论中指出:

您可以将整个应用程序包装在提供程序中。 React-redux 推荐相同的 (react-redux.js.org/introduction/...),所以你可能认为它是可以接受的 练习

【讨论】:

以上是关于你应该用 React Context Provider 包装你的整个应用程序吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何安全地使用 React 的 context

React文档(二十二)context

React Context : 从 API 获取数据并在 React 组件中发生某些事件时调用 API

在js代码中怎样用react 加载组件

使用 React Router v4 正确重定向

React中兄弟组件通信和组件跨级传递Context的使用