我有一个类似于redux的应用程序结构:
app
|-router
| — dashboard container
| — — dashboard component
| — setting container
| — — setting component考虑一下这两个容器,如果我需要从商店获取翻译文本,我应该使用哪种方式?
(1)连接路由器上的redux store,通过道具传给容器
(2)每个容器分别接入redux store
发布于 2018-07-15 21:43:06
正如redux的作者丹·阿布拉莫夫在本期中所说的那样。
将道具传递给子对象或将它们连接到存储的两种方法都是合适的,但是使用嵌套的connect()组件实际上会给您带来更高的性能。缺点是它们与应用程序的耦合度稍高,测试也稍微困难一些,但这可能不是什么大问题。
他还阐述了在reddit https://www.reddit.com/r/reactjs/comments/4azg7q/using_redux_how_do_you_handle_subcomponents_of_a/上遵循的一条很好的经验法则
我这样做:
试着把你的演示组件分开。通过连接它们来创建容器组件当它是convenient.Whenever时,你会觉得你是在复制父组件中的代码,为相同类型的子组件提供数据,是时候提取容器了。
因此,简单地说:
您可以在任何级别使用connect()。这样做会使组件变得智能,因为它知道它的道具来自哪里。哑巴组件只有一些道具,它们可以来自任何地方。智能组件耦合到redux;而哑组件则不是。
发布于 2018-07-15 21:51:50
如果翻译是从路由器分派的,那么如果它们不是通过分派操作来获取或更新的,则使用connect,并且永远不会更新,传递它们会更好。
https://stackoverflow.com/questions/51348859
复制相似问题