Какая фича JavaScript используется под капотом у MobX

«Какая фича JavaScript используется под капотом у MobX» — вопрос из категории JavaScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

MobX использует декораторы (декораторы свойств @observable, @computed, @action) и Proxy API (в современных версиях) для отслеживания изменений в данных.

Пример:

import { observable, computed, action } from "mobx";

class Store {
  @observable count = 0;

  @computed get doubleCount() {
    return this.count * 2;
  }

  @action increment() {
    this.count++;
  }
}

Proxy позволяет MobX перехватывать обращения к свойствам и автоматически управлять реактивностью без декораторов (если используется makeObservable/makeAutoObservable).

Важно:

  • В старых версиях MobX использовал Object.defineProperty.
  • Современные версии полагаются на Proxy для лучшей производительности и поддержки динамических свойств.