我通常在 Stack 上发布与代码相关的内容,但这更多的是关于社区总体想法的问题。
似乎有很多人提倡使用 Redux 和 React 来管理数据/状态,但是在阅读和学习两者时,我发现了一些看起来不太正确的东西。
Redux
在此页面底部:http://redux.js.org/docs/basics/UsageWithReact.html http://redux.js.org/docs/basics/UsageWithReact.html(通过 Store)它建议使用 React 'Context' 的“魔法”。
一种选择是将其作为 prop 传递给每个容器组件。然而,它变得乏味,因为即使通过演示组件,您也必须连接存储,只是因为它们恰好在组件树深处呈现容器。
我们推荐的选项是使用一个特殊的 React Redux 组件,它可以神奇地使存储对所有容器组件可用......
React
在 React Context 页面上(https://facebook.github.io/react/docs/context.html https://facebook.github.io/react/docs/context.html)它的顶部有一个警告:
上下文是一项先进的实验性功能。该 API 可能会在未来版本中发生变化。
然后在底部:
正如编写清晰的代码时最好避免使用全局变量一样,在大多数情况下您应该避免使用上下文......
不要使用上下文通过组件传递模型数据。通过树明确地串接数据更容易理解......
So...
Redux 建议使用 React 'Context' 功能而不是传递store
通过“props”向下到每个组件。而 React 建议相反。
另外,Dan Abramov(Redux 的创建者)现在似乎在 Facebook(React 的创建者)工作,这让我更加困惑。
上下文是一项高级功能,可能会发生变化。在某些情况下,它的便利性超过了它的缺点,因此一些库(例如 React Redux 和 React Router)选择依赖它,尽管它具有实验性质。
这里重要的部分是这个词图书馆。如果上下文改变其行为,作为图书馆作者,我们需要调整。但是,只要该库不要求您直接使用上下文 API,您作为用户就不必担心对其进行更改。
React Redux 在内部使用上下文,但它不会在公共 API 中公开这一事实。因此,您应该感觉通过 React Redux 使用上下文比直接使用上下文更安全,因为如果它发生变化,更新代码的负担将由 React Redux 承担,而不是您。
最终,React Redux 仍然支持始终将 store 作为 prop 传递,因此如果您想完全避免上下文,您可以选择。但我想说这是不切实际的。
TLDR:避免直接使用上下文,除非您真的知道自己在做什么。使用内部恰好依赖上下文的库是相对安全的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)