当前位置:  开发笔记 > 运维 > 正文

为什么redux建议只连接到顶级组件?

如何解决《为什么redux建议只连接到顶级组件?》经验,为你挑选了2个好方法。

我是redux和react-redux的新手,同时我正在努力制作一个redux应用程序.

我不理解redux文档的声明:

然后,我们使用来自react-redux的connect()函数将我们想要连接到Redux的组件包装起来.尝试仅针对顶级组件或路由处理程序执行此操作.虽然从技术上讲,您可以将应用程序中的任何组件()连接到Redux存储,但要避免这样做太深,因为这会使数据流更难以跟踪.

是否更容易连接到所有组件,并且在更新状态时,每个组件都可以获得新的状态树?

为什么哑组件和高级容器?

谢谢.



1> Brandon..:

如上所述,Abramov(Redux作者)已经回顾了他的建议:connect()ed组件.他在这篇关于这个主题的Reddit帖子中阐述了一个很好的经验法则:

我是这样做的:

    首先使用一个容器和几个表示组件

    随着表示组件树的增长,"中间"组件开始传递过多的支持

    此时,我将一些叶子组件包装到容器中,以便"中间"组件不需要接受并传递与它们完全无关的道具

    重复

如果您观看我在Egghead课程中的最后十个视频,这正是我演示的方法:https://egghead.io/series/getting-started-with-redux

从我的阅读来看,最初的建议与connect()性能无关,与模块化组件有关,与大型应用程序中的数据流易于推理有关.

事实上,更多connect()ed组件可能是一个性能优势,而1-container-to-rule-them-all-top-heavy模式. 阿布拉莫夫再一次:

这两种方法都很好,并且嵌套的connect()组件实际上会为您提供更多性能.缺点是它们与应用程序的耦合稍微多一些,并且稍微难以测试,但这可能不是一个大问题.



2> hex13..:

当我在顶部有一个容器时,我遇到了效率问题,因为React在树中某处稍微更新时重新渲染了我的所有组件.所以我放弃了这种方法,并使我的应用程序反对文档,结果证明更快.

但后来我看到甚至Redux的作者都在Twitter上写道:

在Redux示例中强调"顶部的一个容器组件"是一个错误.不要把它当作格言.

https://twitter.com/dan_abramov/status/668585589609005056

尽量将您的演示文稿组件分开.通过在方便的时候连接它们来创建容器组件. https://twitter.com/dan_abramov/status/668586001175048192

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有