out.innerHTML = newVal;
},
});
});
int.addEventListener(‘input’, function(e) {
obj.name = e.target.value;
})
data.age=25 // 触发set方法
vue3.0双向数据绑定Proxy
Vue3.0中的响应式采用了ES6中的Proxy方法。
Proxy 对象用于定义基本操作的自定义行为(如属性查找、赋值、枚举、函数调用等)
语法:
const p = new Proxy(target, handler)
参数target
表示要使用Proxy
包装的对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)
参数handler
是一个通常以函数作为属性的对象,各属性中的函数分别定义了在执行各种操作时代理p
的行为
let obj = {
a: 1,
b: 2
}
const proxy = new Proxy(obj, {
get: function(target, prop, receiver) {
return prop in target ? target[prop] : 0
},
set: function(target, prop, value, receiver) {
target[prop] = 666
}
})
console.log(proxy.a) // 1
console.log(proxy.c) // 0
proxy.a = 10
console.log(proxy.a) // 666
obj.b = 10
console.log(proxy.b) // 不是666 而是10
以上代码中obj
是我们要代理的目标对象,get
,set
方法是参数handler
的两个属性,具体如下:
handler.get()
接收三个参数,第一个参数target
为代理的目标对象,第二个参数prop
是代理的目标对象的属性,第三个参数是Proxy
或者继承Proxy
的对象,通常是proxy
本身。
handler.set()
接收四个参数,其中三个参数都与get
方法相同,唯独多出来一个value
表示新的属性值。
上述代码表示当访问proxy
的属性时,进行拦截判断,该属性是否是目标对象的属性,如果是那么就将其值返回出来,否则就返回0
。
当对proxy
上的属性进行重写时,将重写的该属性赋值为666
。
注意: 此时对数据的劫持,只是劫持了代理对象proxy
,而跟原对象obj
没有任何关系,对obj
进行操作,也不会监听到。
用proxy
实现一个简易版的数据响应:
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
总结
面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。
还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。
万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
前端面试题汇总
JavaScript
前端资料汇总
blog.csdnimg.cn/img_convert/42728594459506983a38ca2b86545fc6.png)
JavaScript
前端资料汇总