Proxy 文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy
Reflect 文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect
****
* 先通过 Proxy 代理对象拦截目标对象的任意属性的任意(13种)操作,包括属性值的读写、属性的添加,、属性的删除等。
* 然后通过 Reflect 反射对象,动态地对被代理对象的相应属性进行特定的操作。
```html
<script type="text/javascript">
//1. 目标对象(被代理对象)
const user = {
name: '张三',
wife: {
name: '小樱'
}
}
//2. 代理对象
const proxyUser = new Proxy(user, {
//获取目标对象的属性值
get(target, prop) {
return Reflect.get(target, prop)
},
//修改或新增目标对象的属性
set(target, prop, val) {
return Reflect.set(target, prop, val)
},
//删除目标对象属性
deleteProperty(target, prop) {
return Reflect.deleteProperty(target, prop)
}
})
//3. 通过代理对象获取属性
console.log(proxyUser.name)
//张三
//4. 通过代理对象更改属性
proxyUser.name = '王五'
console.log(user)
//{name: '王五', wife: {…}}
//5. 通过代理对象添加新属性
proxyUser.gender = '男'
console.log(user)
//{name: '王五', wife: {…}, gender: '男'}
//6. 通过代理对象删除属性
delete proxyUser.gender
console.log(user)
//{name: '王五', wife: {…}}
</script>
```
- nodejs
- 同时安装多个node版本
- Vue3
- 创建Vue3项目
- 使用 vue-cli 创建
- 使用 vite 创建
- 常用的Composition API
- setup
- ref
- reactive
- 响应数据原理
- setup细节
- reactive与ref细节
- 计算属性与监视
- 生命周期函数
- toRefs
- 其它的Composition API
- shallowReactive与shallowRef
- readonly与shallowReadonly
- toRaw与markRaw
- toRef
- customRef
- provide与inject
- 响应式数据的判断
- 组件
- Fragment片断
- Teleport瞬移
- Suspense
- ES6
- Promise对象
- Promise作用
- 状态与过程
- 基本使用
- 常用API
- async与await
- Axios