【发布时间】:2019-01-01 10:09:48
【问题描述】:
新人在这里做出反应并试图将我的头脑围绕新的 Context API(我还没有研究过 Redux 等)。
似乎我可以做很多我需要做的事情,但我最终会得到很多很多的提供者,所有这些都需要一个标签来包装我的主应用程序。
我将有一个 Auth 提供者,一个用于主题,一个用于聊天消息(访问 Pusher.com)等。另外使用 React Router 是另一个包装器元素。
我将不得不结束这个(以及更多)......
<BrowserRouter>
<AuthProvider>
<ThemeProvider>
<ChatProvider>
<App />
</ChatProvider>
</ThemeProvider>
</AuthProvider>
</BrowserRouter>
或者有没有更好的方法?
【问题讨论】:
-
这就是 Redux 解决的问题。
-
嗯,我担心有人会这么说,但我试图听取那些说在使用 Redux 之前尝试在 React 中学习状态的人的建议。稍微了解一下 Redux 和 MoX,我想我会更有可能尝试 MobX
-
以上是Redux的一个很好的用例;回击是因为当地状态通常很好。您不想接受不必要的权衡。见this excellent writeup by Redux-author Dan Abramov, “You Might Not Need Redux”。
-
听到很多人说 API Context 或 React 钩子会将 Redux 扔进垃圾箱,但 Redux 仍然是 Redux,所有 3 种方法都应该用于不同的系统。在这种情况下,或者您拥有全局商店,您需要影响所有网站:Redux 是关键,并且将比 API 上下文更强大(通过避免组件占用所有 DOM(例如,用于身份验证或聊天提供者) . 主题可以像 CSS 一样在 Cascading 中更新,因此 API 上下文是更好的选择。
-
除了列表在视觉上很长导致可见页面变宽之外,这种模式是否真的会产生任何问题?
标签: reactjs react-context