我已经阅读了上下文API,它看起来像是一种解决React的单向数据通信问题的优雅方法。
但是,还有Redux可以很好地共享全球状态。
如果我使用上下文API和钩子,将会获得任何性能优势吗?
PS:我读到上下文API,我们将不得不检查渲染,因为它甚至会使整个应用有时重新渲染。
Context API 最初是为大量读取,少量写入操作而设计的(例如在明暗之间更改主题)
您应该为 1、2 或 3 级深度数据使用 props
感谢您的反对,这是来源
Context 旨在共享可被视为 React 组件树的“全局”数据,例如当前经过身份验证的用户、主题或首选语言。
Context 主要用于在不同嵌套级别的许多组件需要访问某些数据时。谨慎应用它,因为它使组件重用更加困难。
如果您只想避免通过多个级别传递某些道具,组件组合通常是比上下文更简单的解决方案。
小智 5
使用-context 配合使用-reducer 来替代 redux 并不是一个好的实践。上下文将导致页面重新加载,如果我们查看 React 开发工具提供的分析器,就会识别出这一点,而 redux 不会这样做。Redux 比 use-context 更适合全局状态管理
使用 Redux,您可以使用 4 个辅助函数来微调性能:
所有四个辅助函数都具有一些合理的默认功能,默认情况下您可以从中受益。
areStatesEqual
areOwnPropsEqual
areStatePropsEqual
areMergedPropsEqual
对于钩子,您可以按照此处React.memo的说明使用它来提高性能,但它显然不是默认选项,因此您需要显式使用它。
对于 Context API,我希望我可以说你可以使用,shouldComponentUpdate但我可能不能,因为它属于已经过时的 React 类组件。
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |