之前面试被问到的本地和自我相关问题,自我我觉得自己应该能回答出来,可能被之前一小时的问题整懵逼了。尴尬~ ~
自己研究了一下,不足之处望补充,相互进步
<强>本地强>
修饰符本地人,有什么用
-
<李>本地是原生事件(第一反应,当时没然后了…)李>
恶补一下
-
<李>本地一定是用于自定义组件,也就是自定义的html标签李>
结合代码说得明白
& lt; body> & lt; div id=坝τ谩北? & lt; div类="盒子"比; & lt;儿子@click=' handler1祝辞& lt;/Son> & lt;/div> & lt;/div> & lt;/body> & lt; script> const儿子=Vue.component(‘儿子’,{ 模板:“& lt;按钮@mouseover=handler2类=" box1 "祝辞son”, 方法:{ handler2 (e) { } } }) 新Vue ({ 埃尔:“#应用”, 组件:{ 儿子 }, 数据(){ 返回{ 答:123 } }, 方法:{ handler1 (e) { console.log(“父级”) } } }) & lt;/script>
-
<李>当& lt;儿子@click=' handler1祝辞& lt;/Son>子组件中的这个。听众美元返回的是{点击:& # 402;},box1的dom上没有绑定点击事件(可以打开F12查看),所以这个事件不是原生的点击李>
<李>当& lt;儿子@click.native=' handler1祝辞& lt;/Son>子组件中的。美元听众返回的是{},box1的dom上绑定了点击事件(可以打开F12查看),所以这个事件是原生的点击李>
<李>当& lt;儿子@click.self=' handler1祝辞& lt;/Son>子组件中的这个。听众美元返回的是{点击:& # 402;},box1的dom上没有绑定点击事件(可以打开F12查看),所以这个事件不是原生的点击李>
<李>子组件的。美元发出(eventTpye)是从。美元听众返回值中查找的李>
<强>为什么有时候组件点击事件不会生效强>
猜测
-
<李>子组件html标签没有定义点击原生事件李>
<李>子组件没有执行。美元发出(点击)李>
所以
直接.native将事件绑定到子组件html标签上,类似dom。addEventListener(“点击”,处理程序)
<强>自我强>
作用
引用官方说明
& lt; !——只当在事件。目标是当前元素自身时触发处理函数——比; & lt; !——即事件不是从内部元素触发的——比; & lt; div v: click.self=" doThat "在……& lt;/div>
结合代码说明
& lt; body> & lt; div id=坝τ谩北? & lt; div类="盒子" @click.self=癶andler1”比; & lt;儿子祝辞& lt;/Son> & lt;/div> & lt;/div> & lt;/body> & lt; script> const儿子=Vue.component(‘儿子’,{ 模板:“& lt;按钮@click=handler2类=" box1 "祝辞son”, 方法:{ handler2 (e) { console.log (e。目标,e.currentTarget) } } }) 新Vue ({ 埃尔:“#应用”, 组件:{ 儿子 }, 数据(){ 返回{ 答:123 } }, 方法:{ handler1 (e) { console.log (e。目标,e.currentTarget) } } }) & lt;/script>
就是利用e。target和e.currentTarget,当添加自我时,只有当两者相等时才会触发回调
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。