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

Поможет ли глубокое сравнение при мутировании state в React

Глубокое сравнение не поможет при мутировании state, так как React использует поверхностное сравнение (shallow comparison) для определения изменений в state. Если мутировать объект или массив напрямую, React не заметит изменений, так как ссылка останется прежней.

Пример:

jsx
// ❌ Неправильно - мутация state
const [user, setUser] = useState({ name: 'Alex' });

const handleClick = () => {
  user.name = 'Max'; // Мутация!
  setUser(user); // React не обнаружит изменений
};

// ✅ Правильно - создание нового объекта
const handleClick = () => {
  setUser({ ...user, name: 'Max' }); // Новый объект
};

Всегда создавайте новые объекты/массивы при обновлении state. Для сложных структур можно использовать библиотеки типа Immer.

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

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

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

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