反应状态的状态管理

时间:2019-06-30 20:00:15

标签: reactjs redux

我有一个需要由多个组件访问的UserContext和SocketContext(socket.io)。其中一些组件需要同时使用这两个上下文,并迫使我使用Consumer并将值作为prop传递,而不是使用contextType。

创建同时包含用户和套接字对象的GlobalContext是一种好习惯吗?我已经研究了具有useContext的React钩子。我应该改用它吗?

1 个答案:

答案 0 :(得分:0)

通常,最好将上下文分开。更改上下文后,消耗上下文的组件可能会重新呈现。如果您要使用useContext挂钩,则有3 recommended solutions关于如何在上下文更改时如何防止组件频繁更新的问题。第一种解决方案建议拆分上下文。

即使您不使用useContext,对于单个上下文,频繁的重新渲染也可能会成为问题。因此可以消耗multiple context

以及针对多个上下文值的建议解决方案,这些值一起更改。

  

如果经常同时使用两个或多个上下文值,则您可能要考虑创建自己的提供这两个值的渲染道具组件。