reactjs - react-redux 中对象的最佳相等性检查?
问题描述
我有一个动作创建者,它更新一个Object
被调用的countyFrequencies
:
const updateCountyFrequency = (countyFrequencies) => ({
type: 'UPDATE_COUNTY_FREQUENCY',
countyFrequencies //object
})
我目前正在使用useSelector()
钩子从状态react-redux
中获取countyFrequencies
,并将其传递给组件:
const countyFrequencies = useSelector(state => state.countyFrequencies);
return (
<Component countyFrequencies={countyFrequencies} />
)
我的应用程序是一个动画,这个动作创建者正在运行很多次。countyFrequency
每秒多次使用新的键和值更新对象。但是对于许多键,值不会经常变化。其他密钥会不断更新。
除了默认的 strict 检查 Object 相等性是否有意义===
?浅平等会是这里的答案吗?还是深度平等?检查深度相等比浅相等需要更长的时间吗?===
如果对象变化如此之大,保持平等是否有意义?
在更一般的意义上,如果返回的类型useSelector()
是对象,如何检查对象是否已更改?我仍然不完全理解对象的浅相等和深相等之间的区别。
在过去,我已经这样做了(来自文档:https ://react-redux.js.org/api/hooks ):
import { shallowEqual, useSelector } from 'react-redux'
// later
const selectedData = useSelector(selectorReturningObject, shallowEqual)
解决方案
推荐阅读
- dart - 枚举可以在 AngularDart 模板中使用吗?如何?
- panel - 带有矢量面板设计 v11 的透明按钮?
- amazon-web-services - 如何在整个 Swagger YAML 文档中重复使用我的 x-amazon-apigateway-integration 定义?
- php - 仅获取 id 的最后一个结果
- java - 考虑到 Java 中 tinkergraph 权重的最短路径
- git - git 仅将特定功能从 dev 合并到 master
- android - 通知生成器在随机时间显示通知
- javascript - 角表渲染问题(它渲染了太多的单元格)
- javascript - 当有人之前给予许可时,我的网页项目会自动获取 Facebook 信息
- debian - Apache vhost 目录从未使用过