Если у нас есть большой store, состоящий из нескольких частей, и родительский компонент использует одну часть стейта, а дочерний — другую, как обеспечить независимый ре-рендеринг этих компонентов без оборачивания в useMemo?

Подпишите каждый компонент на нужный срез через селектор, но учитывайте: обновление родителя всё равно может вызвать render обычного потомка.

Короткий ответ

Что ответить на собеседовании

Подпишите каждый компонент на нужный срез через селектор, но учитывайте: обновление родителя всё равно может вызвать render обычного потомка.

Подробный разбор

Ответ с пояснениями

Подпишите каждый компонент на нужный срез через селектор, но учитывайте: обновление родителя всё равно может вызвать render обычного потомка.

В Redux useSelector сравнивает выбранный результат, поэтому не возвращайте новый объект без необходимости. Для изоляции от родительского render применяют React.memo со стабильными props или композицию, при которой обновляющийся компонент не пересоздаёт поддерево. UseMemo не является обязательным решением и не заменяет корректную структуру подписок.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее