Proxy 是 ES6 中新增的功能,它可以用来自定义对象中的操作。Vue3.0 中将会通过 Proxy 来替换原本的 Object.defineProperty 来实现数据响应式。
语法
let p = new Proxy(target, handler)
解释
参数 | 含义 | 必选 |
---|---|---|
target | 用 Proxy 包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理) | Y |
handler | 一个对象,其属性是当执行一个操作时定义代理的行为的函数 | Y |
// 读法示例
let o = {
name: 'lee',
price: 190
}
let d = new Proxy(o, {
get(target, key) {
if (key === 'price') {
return target[key] + 20
} else {
return target[key]
}
}
})
console.log(d.price, d.name) // 210 "lee"
场景一:读写操作拦截
// 场景一:读写操作拦截-Proxy
let o = {
name: 'lee',