Reactjs 在React中记住所有内容是一种不好的做法吗?

Reactjs 在React中记住所有内容是一种不好的做法吗?,reactjs,Reactjs,我知道使用React.memo来记忆组件/组件的一部分通常是一种好的做法,但我发现自己在使用React钩子表单实现的表单上记忆每个字段。由于RHF使用不受控制的组件,这似乎不是问题:组件似乎更新得很好,我确实看到了性能改进 不过,我的直觉告诉我,把几乎所有的事情都记下来是一种糟糕的做法。这是个坏习惯吗?还有其他方法可以节省渲染吗?我会说是的,记住所有内容是非常多余的。我建议使用,以了解哪些组件需要记忆 我也要提到这个答案 我会说是的,把所有事情都记下来是很多余的。我建议使用,以了解哪些组件需要记

我知道使用React.memo来记忆组件/组件的一部分通常是一种好的做法,但我发现自己在使用React钩子表单实现的表单上记忆每个字段。由于RHF使用不受控制的组件,这似乎不是问题:组件似乎更新得很好,我确实看到了性能改进


不过,我的直觉告诉我,把几乎所有的事情都记下来是一种糟糕的做法。这是个坏习惯吗?还有其他方法可以节省渲染吗?

我会说是的,记住所有内容是非常多余的。我建议使用,以了解哪些组件需要记忆

我也要提到这个答案


我会说是的,把所有事情都记下来是很多余的。我建议使用,以了解哪些组件需要记忆

我也要提到这个答案


你的直觉是正确的。如果React.memo使React更高效,那么它应该是默认行为,而不仅仅是可选行为。类纯函数

简短解释如下:

React.memo通过比较组件以前的和当前的道具来防止一些冗余的重新加载

<Parent>
  <Child />
</Parent>
通常,当Parrent重新渲染时,默认情况下子重新渲染器也会重新渲染

如果在父级重新渲染时传递到子级的道具未更改,则在子级上使用React.memo时,子级不会重新渲染

这里的问题是:为什么在当前的渲染阶段没有更改孩子身上的道具

答案是:React本身必须进行比较,这是React.memo的成本

如果比较时间>重新渲染整个子组件的时间,它甚至会减慢重新渲染时间


您只需使用React.memo来处理一些包含大量行的大型内容表,并且由于某些原因它没有分页。

您的直觉是正确的。如果React.memo使React更高效,那么它应该是默认行为,而不仅仅是可选行为。类纯函数

简短解释如下:

React.memo通过比较组件以前的和当前的道具来防止一些冗余的重新加载

<Parent>
  <Child />
</Parent>
通常,当Parrent重新渲染时,默认情况下子重新渲染器也会重新渲染

如果在父级重新渲染时传递到子级的道具未更改,则在子级上使用React.memo时,子级不会重新渲染

这里的问题是:为什么在当前的渲染阶段没有更改孩子身上的道具

答案是:React本身必须进行比较,这是React.memo的成本

如果比较时间>重新渲染整个子组件的时间,它甚至会减慢重新渲染时间

您只需要将React.memo用于一些包含大量行的大型things表,并且由于某些原因,它没有分页