无需 Redux 即可快速更改状态
Fast changing states without Redux
我在一个状态快速变化且广播很多的网站上工作,我正在尝试使用挂钩和上下文创建我自己的全局状态管理。我发现避免无用渲染的唯一解决方案是为每个状态创建两个上下文,一个用于状态更新器方法,一个用于状态本身。我最终有几十个上下文。
它看起来不像是一个好的设计,但我没有任何其他想法,我仍然认为可以在没有第三方的情况下创建一个复杂的 React 应用程序 库 来处理状态管理。
你有什么建议吗?谢谢
首先注意,Context API is not a state management tool.
目前 (v17
) 没有针对上下文消费者的救助。
If you don't know what does it mean,
你是对的,你需要有多个上下文提供者来减少无用的渲染。
关于你的另一个问题:
"Could be possible to create a complex react app without a third-party library to handle state management?"
我正在 Facebook 上做一个非常复杂的项目,我们只使用 Context API 来管理它(我们也有无用渲染的情况,这没关系),所以基本上答案是“是的".
作为在继续“仅上下文”方式或任何状态管理解决方案之前的一般建议,您应该分析应用程序性能,大多数情况下它只是 premature optimization,并且“无用”呈现是没有意义的。
我在一个状态快速变化且广播很多的网站上工作,我正在尝试使用挂钩和上下文创建我自己的全局状态管理。我发现避免无用渲染的唯一解决方案是为每个状态创建两个上下文,一个用于状态更新器方法,一个用于状态本身。我最终有几十个上下文。
它看起来不像是一个好的设计,但我没有任何其他想法,我仍然认为可以在没有第三方的情况下创建一个复杂的 React 应用程序 库 来处理状态管理。
你有什么建议吗?谢谢
首先注意,Context API is not a state management tool.
目前 (v17
) 没有针对上下文消费者的救助。
If you don't know what does it mean,
你是对的,你需要有多个上下文提供者来减少无用的渲染。
关于你的另一个问题:
"Could be possible to create a complex react app without a third-party library to handle state management?"
我正在 Facebook 上做一个非常复杂的项目,我们只使用 Context API 来管理它(我们也有无用渲染的情况,这没关系),所以基本上答案是“是的".
作为在继续“仅上下文”方式或任何状态管理解决方案之前的一般建议,您应该分析应用程序性能,大多数情况下它只是 premature optimization,并且“无用”呈现是没有意义的。