Cumlíonn Proxy réad agus tugann sé duit an deis idirghaibháil a dhéanamh ar oibríochtaí bunúsacha air (get, set, has, delete, srl.) trí fheidhmeanna láimhseála ar a dtugtar traps. Soláthraíonn Reflect na leaganacha réamhshocraithe de na hoibríochtaí sin mar fheidhmeanna, ionas gur féidir le traps a bhogadh ar aghaidh chuig an iompar gnáth go soiléir.
const user = { name: "Ann" };
const proxied = new Proxy(user, {
get(target, key) {
console.log(`read ${key}`);
return Reflect.get(target, key); // default get behavior
},
set(target, key, value) {
if (key === "age" && value < 0) throw new Error("invalid age"); // validation
return Reflect.set(target, key, value);
},
});
proxied.name; // logs "read name" → "Ann"
proxied.age = -5; // throws — intercepted by the set trap
Fíor-chásanna úsáide
- Reactivity: Filleann an córas reactivity Vue 3 stádas i Proxy ionas go bhfuil a fhios aici go díreach cathain a bhíonn tú ag léamh nó ag scríobh ar airí, agus athshreathraíonn sí dá réir.
- Bailíochtú / rialú rochtana: feidhmeanna a fhorfheidhmiú ar scríobh airí.
- Taifeadadh / ionstrúmhniú: rochtain a thráchta chun dhífhabhtú.
- Luachanna réamhshocraithe / airí fíorúla: luachanna ríofa a thabhairt ar ais do na heochracha ar iarraidh.
- Innéacsanna diúltacha eolaire, balúin athraitheach, cliantaí API a ghineann modhanna go dinimiciúil.
Cén fáth a bhfuil Reflect ann
Inneall trap ní mór duit an oibríocht réamhshocraithe a dhéanamh. Ag úsáid Reflect.get/set (in ionad target[key]) láimhseálann sé i gceart cásanna imeallach cosúil leis an ceart receiver do ghabhálaithe/socrúchán oidhreachta.
Cén fáth is tábhachtach é seo
Cumasaíonn Proxies meta-phrógrámaíochta cumhachtach ar a bhíonn creat-oibre ag brath.
Is é an malairt-dhíol ná barramharc — téann gach oibríocht trína trap — mar sin úsáid iad áit ar bhfuil an idirghaibháil go fíor-dhílis air, ní do ghnáth-réada.
