Встречается на собеседованиях • сегодня

Будет ли перерисовка компонента, если в setState передать тот же state

Нет, перерисовка не произойдет. React использует shallow compare для сравнения предыдущего и нового состояния. Если передаваемый объект state идентичен предыдущему (по ссылке или по значению для примитивов), React не будет выполнять ререндер компонента.

Пример:

jsx
const [state, setState] = useState({ count: 0 });

// Не вызовет ререндер
setState(state); // передаем тот же объект
setState(prev => prev); // возвращаем тот же объект

// Вызовет ререндер
setState({ ...state }); // новый объект, даже с тем же содержимым

Для оптимизации можно использовать useMemo или React.memo, чтобы избежать лишних ререндеров дочерних компонентов.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы