我要在滚动条中列出一些新闻。 到目前为止,我设法做的是重新渲染该组件,以便在滚动条到达底部时显示更多新闻。
开始时我的初始状态为25条新闻。然后,对于每个滚动,我只添加另一个25条新闻。我注意到的是,在重新渲染更多新闻时,我的组件非常慢。我怀疑这可能是因为它从头开始渲染“已渲染”的新闻。
是否可以将已经渲染的新闻保留在内存中或其他东西中,而至少不重新渲染而只是重新渲染新新闻?
记住数组中已渲染的对象
答案 0 :(得分:1)
看看PureComponent
。 React文档指出以下内容:
React.PureComponent与React.Component类似。它们之间的区别在于React.Component并未实现shouldComponentUpdate(),但是React.PureComponent却通过浅层的prop和状态比较来实现它。
如果您的React组件的render()函数在相同的道具和状态下呈现相同的结果,则在某些情况下,您可以使用React.PureComponent来提高性能。
https://reactjs.org/docs/react-api.html#reactpurecomponent
将ListItem
组件转换为PureComponet
可以提高性能,因为如果传递给它的道具相同,React不会重新渲染这些组件。