Доки по разработке
This project is maintained by teniryte
Принципы
new Proxy(target, handlers) позволяет перехватывать операции чтения/записи свойств.get может выполнять побочные эффекты (логирование, трекинг зависимостей), а set — валидировать или реагировать на изменения.Reflect.set и Reflect.get сохраняет стандартное поведение, избегая ошибок.Пример
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..."
Практика
set возвращает true, иначе операция записи считается неуспешной.WeakMap, чтобы отслеживать зависимости на всех уровнях.