例如,在页面上,我有许多组件,许多组件数组。如果我分派一些操作,整个页面都会重新呈现所有这些组件数组。但我不需要在页面上重新呈现未更改的项目/组件。我只想要更改的组件被重新渲染。我知道有shouldComponentUpdate()。但是在每个组件中使用shouldComponentUpdate编写逻辑并不是很酷。也许有一些库可以做到这一点,或者可能有一些替代方法?我听说过reactjs/reselect
,这对于这样的问题是正确的吗,或者如果我误解了,请告诉我reselect代表哪些问题?那么使用功能组件的情况又如何呢?
也许还有一些库可以用来优化性能和控制哪些组件允许重建?
我还找到了https://github.com/seatgeek/react-infinite https://github.com/bvaughn/react-virtualized这两个库有相同的目的吗?有什么不同?选择哪一个?
还有一个简单的问题,假设我正在获取数据,它正在添加到数组中。如何在每次获取新项时只呈现添加的项,而不是整个数组?
发布于 2017-10-06 17:43:22
是的,你是对的。
我建议你调查一下reselect。
重新选择允许您对数据进行记忆,并仅选择在应用程序的某些部分中使用的存储部分。
使用选择器,如果存储的选定部分发生更改,库将导致DOM重新呈现;但是,即使存储的部分发生更改但没有连接到所需的数据,也不会。
发布于 2017-10-06 21:32:09
重新选择他的一个很棒的库,这就是你需要的。唯一的缺点是如果您在许多组件中使用选择器。您需要为每个选择器创建一个实例,以使其成为私有的。可以通过像这里显示的https://github.com/reactjs/reselect#sharing-selectors-with-props-across-multiple-components一样创建一个makeMapStateToProps函数来轻松完成。但我不喜欢为我需要的每一个选择器做这个。所以我找到了这个库,它是最后一个https://github.com/toomuchdesign/re-reselect的扩展。这个函数执行相同的选择器,但您可以使用一些键进行缓存。
https://stackoverflow.com/questions/46610672
复制相似问题