我有一个需要由多个组件访问的UserContext和SocketContext(socket.io)。其中一些组件需要同时使用这两个上下文,并迫使我使用Consumer并将值作为prop传递,而不是使用contextType。
创建同时包含用户和套接字对象的GlobalContext是一种好习惯吗?我已经研究了具有useContext的React钩子。我应该改用它吗?
答案 0 :(得分:0)
通常,最好将上下文分开。更改上下文后,消耗上下文的组件可能会重新呈现。如果您要使用useContext
挂钩,则有3 recommended solutions关于如何在上下文更改时如何防止组件频繁更新的问题。第一种解决方案建议拆分上下文。
即使您不使用useContext
,对于单个上下文,频繁的重新渲染也可能会成为问题。因此可以消耗multiple context。
以及针对多个上下文值的建议解决方案,这些值一起更改。
如果经常同时使用两个或多个上下文值,则您可能要考虑创建自己的提供这两个值的渲染道具组件。