{T}

ReactContext的性能缺点和解决方案

学习目标

  • 理解并掌握 ReactContext的性能缺点和解决方案 的核心原理与工程实践

总结

context 在跨层传递数据方面很好用,在组件库里用的很多,但是它也有一些性能方面的缺点。

context 中如果是一个对象,不管任意属性变了,都会导致依赖其它属性的组件跟着重新渲染。

解决这个问题有几种方案:

  • 拆分 context,每种数据放在一个 context 里
  • 用 zustand 等状态管理库,因为它们不是用 context 实现的,自然没有这种问题
  • 用 memo 包裹子组件,它会对比新旧 props,没变就不会重新渲染

context 虽然好用,但是用的时候也要注意下这个性能方面的缺点。

继续阅读