Встречается на собеседованиях • сегодня
Будет ли перерисовка компонента, если в setState передать тот же state
Нет, перерисовка не произойдет. React использует shallow compare для сравнения предыдущего и нового состояния. Если передаваемый объект state идентичен предыдущему (по ссылке или по значению для примитивов), React не будет выполнять ререндер компонента.
Пример:
jsx
const [state, setState] = useState({ count: 0 });
// Не вызовет ререндер
setState(state); // передаем тот же объект
setState(prev => prev); // возвращаем тот же объект
// Вызовет ререндер
setState({ ...state }); // новый объект, даже с тем же содержимымДля оптимизации можно использовать useMemo или React.memo, чтобы избежать лишних ререндеров дочерних компонентов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы