我们正在我们的 react/redux 应用程序中实现性能优化。这些优化的一部分包括引入重新选择。这对于直接来自状态的数据非常有效。但是从其他道具派生的数据呢?
例子:
我们有 3 个组件Feed
FeedItem
和Contact
(Contact 是用于显示用户联系信息的组件)。
aFeedItem
获取表示提要中的项目的对象,提要项目的属性之一是参与者对象。这个对象就像一个用户,但有点不同(这很糟糕,但不能改变)。这意味着如果我想Contact
为这个演员渲染一个,我需要创建一个新的对象,将演员的属性映射到用户。在每次渲染上创建一个新对象是一种性能反模式,因为我们使用的是浅相等检查。
例如代码:
<Contact
user={{
photoUrl: actor.photo.smallPhotoUrl,
Id: actor.id,
Name: actor.name,
}}
</Contact>
有解决这个问题的模式吗?reselect 只支持从 redux state 派生数据,这基本上是从 props 派生的数据。