Задать вопрос
@dimoff66
Кратко о себе: Я есть

Какова обычная практика использования мемоизации компонента в Реакт?

Допустим у меня внутри компонента есть такая часть

<div>
  {items.map(item => <Item item={item}>)}
</div>


и данный массив items содержит большое число элементов.

Имеет ли смысл этот div мемоизировать при условии что дорогих вычислений в компоненте Item нет? То бишь если реакт получит мемоизированный jsx с тэгом div и парой сотен вложенных Item, станет ли он проверять существующий в DOMе div на соответствие атрибутов всех детей, или просто оставит все как есть, поскольку сама ссылка jsx не поменялась?

Надеюсь понятно объяснил
  • Вопрос задан
  • 135 просмотров
Подписаться 3 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08
Хук useMemo вторым аргументом принимает список зависимостей. У тебя, в качестве зависимости, будет items. И когда в компонент прилетит новый items, твой хук заново перестроит элементы. Так что, в данном случае, толку от него нет. Тебе скорее всего придется применять его для компонента Item, чтоб не обновлять его, если переданные в него данные не изменились.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы