ExpertiDict

JavaScript · Avançado · Inglês · Técnico

Proxy

/ˈpɹɑksi/substantivo

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 a

Exemplos

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.

Veja também

Todos os termos de JavaScript