我们正在我们的react/redux应用程序中实施性能优化。部分优化包括引入重选。这对于直接从状态派生的数据非常有效。但是从其他道具派生的数据呢?从反应道具中有效计算派生数据
实施例:
我们有3个部件Feed
FeedItem
和Contact
(联系是用于显示用户的联系人信息的分量)。
a FeedItem
获取表示供稿中项目的对象,供稿项目的其中一个属性是演员对象。这个对象就像一个用户,但有点不同(这很糟糕,但不能改变)。这意味着如果我想为该演员渲染一个Contact
,我需要创建一个新的对象,将属性从演员映射到用户。在每个渲染上创建一个新对象是一种性能反模式,因为我们正在使用浅层平等检查。
e.g代码:
<Contact
user={{
photoUrl: actor.photo.smallPhotoUrl,
Id: actor.id,
Name: actor.name,
}}
</Contact>
是否有解决这个模式?重新选择仅支持来自redux状态的派生数据,这基本上是从道具派生的数据。
不知道如果我理解正确的,但重新选择能够选择的道具:https://github.com/reactjs/reselect#accessing-react -props-in-selectors – janhartmann
这是针对状态和道具,我只是想根据道具有效地计算派生数据 – davegri