Лучшая проверка на равенство для объектов в Reaction-Redux? - PullRequest
1 голос
/ 21 апреля 2020

У меня есть создатель действия, который обновляет 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 обновляется новыми ключами и значениями много раз в секунду. Но для многих ключей значение меняется не часто. Другие ключи постоянно обновляются.

Имеет ли смысл проверять равенство объектов, кроме строгого по умолчанию ===? Будет ли здесь полное равенство? Или глубокое равенство? Глубокое равенство требует больше времени для проверки, чем поверхностное равенство? Если объект так сильно меняется, имеет ли смысл просто сохранять === равенство?

И в более общем смысле, если тип, возвращаемый useSelector(), является объектом, как можно проверить чтобы увидеть, изменился ли объект? Я до сих пор не совсем понимаю разницу между поверхностным и глубоким равенством для объектов.

В прошлом я делал это (из документов: https://react-redux.js.org/api/hooks):

import { shallowEqual, useSelector } from 'react-redux'

// later
const selectedData = useSelector(selectorReturningObject, shallowEqual)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...