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

Почему не патчишь старую коллекцию элементов в MobX при получении новых данных

При обновлении коллекции в MobX важно учитывать реактивность. Если просто заменить старую коллекцию новой (например, this.items = newItems), все наблюдатели потерят связь с исходными данными.

Лучше патчить существующую коллекцию, сохраняя ссылки на объекты:

javascript
// Плохо - теряем реактивность
this.items = newItems;

// Хорошо - сохраняем реактивность
this.items.replace(newItems); // для массивов
// Или для объектов:
Object.keys(newItems).forEach(key => {
  if (this.items[key]) {
    Object.assign(this.items[key], newItems[key]);
  } else {
    this.items[key] = newItems[key];
  }
});

Такой подход сохраняет существующие наблюдатели и обновляет данные реактивно.

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

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

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

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