Ответ
Proxy — это мощный API JavaScript, позволяющий перехватывать и изменять поведение объектов. На его основе построены:
- Vue 3 Reactivity System — реактивность во Vue 3 использует Proxy для отслеживания изменений в данных.
const reactive = new Proxy(data, {
get(target, key) { /* отслеживаем доступ */ },
set(target, key, value) { /* триггерим обновления */ }
});
-
MobX — библиотека управления состоянием, где Proxy помогает автоматически отслеживать изменения.
-
Immer — для работы с иммутабельными структурами данных (проксирует draft-объекты).
-
Часть ES6+ фич, например,
Array.prototype.findи другие методы, могут использовать Proxy под капотом для оптимизации.
Proxy также применяют в:
- Валидации данных (перехват set/get)
- Логировании изменений объекта
- Создании "ленивых" или виртуальных свойств.
⚠️ Ограничение: Proxy не работает с примитивами напрямую.