undefined*binding包含绑定值的对象*/inserted:function(el,binding){const{callback,ti??me}=binding.valueel.callback=callbackel.time=timeel.timeCall=nullel.addEventListener('click',()=>{clearTimeout(el.timeCall)el.timeCall=setTimeout(()=>{el.callback()},el.time||500)})},//组件调用的VNode更新时更新:function(el,binding){console.log('update')const{callback,ti??me}=binding.valueel.callback=callbackel.time=time},})核心原理const{callback,ti??me}=binding.valueel.callback=callbackel.time=timeel.timeCall=nullel.addEventListener('click',()=>{clearTimeout(el.timeCall)el.timeCall=setTimeout(()=>{el.callback()},el.time||500)})通过定时器setTimeout延迟执行点击回调,当el.time||500次,clearTimeout(el.timeCall)再次触发时关闭定时器,重新延迟el.callback=callbackandel.time=time再次挂在el上,当v-antiShake绑定的值更新时,事件触发更新回调update:function(el,binding){console.log('update')const{callback,ti??me}=binding.valueel.callback=callbackel.time=time},命令testClick的值为不做deepwatch,只有当整体对象发生变化时才会触发命令中的updatehook函数
