Proxy的实际应用场景
JavaScript的Proxy是一种强大的特性,它允许你拦截并自定义对象的底层操作。下面是一些JavaScript Proxy的实际应用示例:
# 1、数据绑定
vue3就是利用proxy对属性进行监听,相对于vue2使用的Object.defineProperty更全面
# 2、数据验证和过滤
通过使用Proxy,你可以拦截对对象属性的访问,并在访问之前对数据进行验证和过滤。
let tempObj = { name: '张三', sex: '男' }
let obj = new Proxy(tempObj, {
set: function(target, prop, value) {
if (prop === 'sex') {
// 赋值时校验属性值
if (['男', '女'].includes(value)) {
target[prop] = value
} else {
throw new Error(`属性sex不支持当前值:${value}`)
}
} else {
target[prop] = value
}
}
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 3、只读属性
将对象设置为不可变的,即使尝试修改对象的属性也会被拦截。这对于保护对象的完整性和安全性非常有用。
# 4、缓存与日志
使用Proxy来创建一个缓存层,以避免频繁的计算或网络请求。当访问某个属性时,先检查缓存是否存在该属性的值,如果存在则直接返回缓存的值,否则进行计算或请求,并将结果存入缓存。 同时也可以将所有对对象的访问记录日志,对开发和调试很有用
上次更新: 2025/09/05, 8:09:00