Что произойдёт при изменении объекта без изменения ссылки, особенно при стратегии OnPush, и как обработать такое обновление?

Мутация объекта сохраняет его ссылку, поэтому OnPush-компонент может не получить уведомление о новом input и оставить старое отображение.

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

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

Мутация объекта сохраняет его ссылку, поэтому OnPush-компонент может не получить уведомление о новом input и оставить старое отображение.

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

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

Условие

Что произойдёт при изменении объекта без изменения ссылки, особенно при стратегии OnPush, и как обработать такое обновление?

Ответ

Мутация объекта сохраняет его ссылку, поэтому OnPush-компонент может не получить уведомление о новом input и оставить старое отображение.

Предпочтительно создать новое значение, например { ...item, name: nextName }, и передать его как input. Другие события или markForCheck могут инициировать проверку, поэтому проблема не означает, что мутация никогда не отображается. Для сигналов также важны правила сравнения и корректное уведомление об изменении.

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

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

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

Подробнее