Dev Highlights

Доки по разработке

This project is maintained by teniryte

Proxy и реактивность

Принципы

Пример

const original = { name: 'jeff' };

const reactive = new Proxy(original, {
  get(target, key) {
    console.log('Tracking:', key);
    return target[key as keyof typeof target];
  },
  set(target, key, value) {
    console.log('updating UI...');
    return Reflect.set(target, key, value);
  },
});

reactive.name;       // логирует "Tracking: name"
reactive.name = 'bob'; // логирует "updating UI..."

Практика