2022前端面试
2022-08-23 本文已影响0人
塔塔七
1、双向绑定
vue2 使用es5的 Object.defineProperty(obj, prop, descriptor) obj -要定义属性的对象,prop-要定义或修改的属性的名称,descriptor-要定义或修改的属性描述符
object.defineProperty( data, 'text', {
get:function(){
return data['text']
},
set:function(newVal){
input.vaule = newVal
}
})
vue3 使用es6的 Object.defineProperty(obj, prop, descriptor) obj -要定义属性的对象,prop-要定义或修改的属性的名称,descriptor-要定义或修改的属性描述符
const observer= new Proxy(target,{
get(target, prop){
return target[prop]
},
set(target, prop, value){
target[prop] = value
}})
vue2是用定义一个新对象进行数据绑定处理,vue3是代理原对象进行数据绑定处理
2、节流防抖
节流:函数首次执行,设定时间内不再执行第二次,应用:下拉刷新,表单提交等。
防抖:设定时间结束后函数执行一次,应用:input键入搜索等。