我通常在Stack上发布代码相关的东西,但这更多的是关于社区的一般想法是什么的问题.
似乎有很多人主张使用Redux和React来管理数据/状态,但是在阅读和学习两者时,我遇到了一些看起来不太合适的东西.
在本页的底部:http://redux.js.org/docs/basics/UsageWithReact.html(传递商店)它建议使用React'Context'的"Magic".
一种选择是将其作为道具传递给每个容器组件.然而,它变得乏味,因为你必须通过表示组件连线存储,因为它们碰巧在组件树中深层渲染容器.
我们建议的选项是使用一个特殊的React Redux组件,该组件可以神奇地使商店可用于所有容器组件......
在React Context页面(https://facebook.github.io/react/docs/context.html)上面有一个警告:
上下文是一种先进的实验性功能.API可能会在将来的版本中发生变化.
然后在底部:
正如在编写清晰代码时最好避免使用全局变量一样,在大多数情况下应避免使用上下文...
不要使用上下文通过组件传递模型数据.明确地通过树线处理数据更容易理解......
Redux建议使用React'Context'功能,而不是store通过'props' 将其传递给每个组件.虽然React建议相反.
此外,似乎Dan Abramov(Redux的创建者)现在为Facebook(React的创建者)工作,只是为了让我更加困惑.
我正在研究一个有很多子组件的组件,其中一些子组件嵌套了五个子组件.我有兴趣使用redux来获得在共同状态原子中具有单一真实来源的优势.
我不理解的是智能/愚蠢的组件推荐,并将提供者置于主要组件之上,并通过道具传递所有内容.如果我这样做,那么我需要将道具一直传递到第五个嵌套项目,这样它就可以进行回调以调度一个动作或查看只有它需要的状态,而不是它的父项.我理解这是用于代码重用,但子组件永远不会在主组件之外使用.这里推荐的解决方案是什么?还在用道具?
注意:该库的作者要求我们在StackOverflow上提问.我之所以提到这一点,是因为SO似乎将"最佳实践"问题标记为过于模糊.