您的位置:首页 > 娱乐 > 八卦 > 免费下载公众号_威县网站建设报价_百度官方app下载_百度网页版入口

免费下载公众号_威县网站建设报价_百度官方app下载_百度网页版入口

2025/8/5 10:46:55 来源:https://blog.csdn.net/2301_76671906/article/details/145890823  浏览:    关键词:免费下载公众号_威县网站建设报价_百度官方app下载_百度网页版入口
免费下载公众号_威县网站建设报价_百度官方app下载_百度网页版入口

1.实现原理

  1. 通过Proxy (代理对象): 拦截对象中任意属性的变化,包括: 性值的读写、性的添加、属性的删除。
  2. 通过Reflect (反射对象): 对源对象的属性进行操作。
new Proxy(data,{
// 拦截读取属性值
get (target, prop) (
return Reflect.get(target, prop)
// 拦截设置属性值或添加新属性
set (target, prop, value) 
return Reflect.set(target,prop, value)
//拦截删除属性
deleteProperty (target,prop) {
return Reflect.deleteProperty(target,prop)
proxy.name = 'tom'

2.模拟响应(proxy)

target->person

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>vue3响应式</title><script>// 源对象let person = {name: "messi",age: 15,};const p = new Proxy(person, {// p读取get(target, propName) {console.log(`已经读取p上的${propName}`, 'target', target, 'propName', propName);return Reflect.get(target, propName)},// p修改与增加set(target, propName, value) {console.log(`已经修改p上的${propName}属性,更新页面`);return Reflect.set(target, propName, value)},// p删除deleteProperty(target, propName) {console.log(`已经删除p上的${propName}属性,更新页面`);// return delete target[propName];return Reflect.defineProperty(target, propName)}});</script>
</head><body></body></html>

对应操作响应式更改

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com