首页 > 解决方案 > 关于防止对 react/redux 进行不必要的重新渲染的思想实验反馈

问题描述

因此,虽然与直接操作 dom 相比,虚拟 dom 和 diffing 使 React 更快,但我已经读过,如果你不模块化你的组件,它将触发不必要的渲染,因为它会重新渲染它收到的所有父组件即使他们的 UI 没有改变,也可以从 props 获得。这是 React 最大的性能缺陷之一。

在非常极端的方面,如果我将我的应用程序设计为没有子组件并且每个组件都保持自己的状态,它可能会回避这个性能问题,但几乎不可能维护。

如果我创建某种高阶组件(如 redux 的 connect)来包装我的整个主要组件(它包含我所有的组件)并为每个仅包含它需要的道具的单个组件递归地创建一个状态切片怎么办?这样它可以保留类似 redux 的奇异性原则和代码可维护性,同时避免不必要的重新渲染。

我认为它可能必须与 redux 一起使用才能在某个地方一次访问所有道具,但也许它可以在没有的情况下使用。这种方式代码拆分和延迟加载组件将很容易实现(可能设置最大并发服务器请求数以减少开销)。我也会记住这些道具以减少请求的数量。

我认为它是副项目的一个潜在想法,但我不知道它是否可行,或者它是否解决了不必要的渲染问题。我认为它是某种可以在 redux 之上使用的 npm 库。

标签: reactjsreduxreact-redux

解决方案


推荐阅读