The Proxy object creates a wrapper that intercepts operations on another object — reads, writes, function calls, and more. The Reflect API provides methods that correspond to Proxy traps.
A Proxy takes a target object and a handler with trap methods. Common traps include get (property read), set (property write), has (in operator), deleteProperty, and apply (function call).
Vue 3 reactivity system is built entirely on Proxy. When you access a reactive property, the get trap records it as a dependency. When you modify it, the set trap triggers re-renders.
Practical uses include validation proxies, logging proxies, default value proxies, and access control.
The key advantage over Object.defineProperty: Proxy handles array index access, property deletion, and the in operator — operations that define-property cannot intercept.