JavaScript · Avançado · Inglês · Técnico
Proxy
Objeto que envolve outro e intercepta operações como leitura, escrita e exclusão de propriedades por meio de traps. Permite validação, logs e reatividade sem mudar o objeto original.
Onde usar
Base de sistemas reativos como o do Vue 3 e de bibliotecas de validação. Em code review, atenção ao custo de desempenho e ao fato de o proxy ter identidade diferente do alvo.
Em código
const alvo = { a: 1 };
const p = new Proxy(alvo, {
get(obj, chave) {
console.log('lendo', chave);
return Reflect.get(obj, chave);
},
});
p.a; // lendo aExemplos
Vue wraps your state in a Proxy to track changes.
O Vue envolve seu estado num Proxy para rastrear mudanças.
The get trap logs every property that is read.
A trap get registra toda propriedade que é lida.
Cuidado
Comparar o proxy com o objeto original por ===: são referências diferentes.
Origem
Do inglês proxy, 'procurador', alguém que age em nome de outro.