欢迎光临散文网 会员登陆 & 注册

vue事件监听和修饰符

2023-04-23 00:37 作者:芜湖小量化  | 我要投稿

<template>
 <div>
   <button @click="click_btn_1(2)">{{count}}</button>
 </div>
<!--  click外层 0-4-28 可见执行的逻辑是(*3+2)*2  最先执行的内层 然后是中层 外层-->
 <div @click="click_1" style="border: 1px solid #3793de">
   <div @click="click_2" style="border: 1px solid #3793de">
     <div @click="click_3" style="border: 1px solid #3793de">{{count}}</div>{{count}}
   </div>{{count}}
 </div>
<!--  click外层 0-6-42 可见执行的逻辑是(*2+2)*3 最先执行的外层 然后是中层 内层 可见捕获的顺序是由外到内-->
 <div @click.capture="click_1" style="border: 1px solid #3793de">
   <div @click.capture="click_2" style="border: 1px solid #3793de">
     <div @click.capture="click_3" style="border: 1px solid #3793de">{{count}}</div>{{count}}
   </div>{{count}}
 </div>
<!--  click外层只执行 *3 使用stop修饰符可以阻止时间的传递-->
 <div @click.stop="click_1" style="border: 1px solid #3793de">
   <div @click.stop="click_2" style="border: 1px solid #3793de">
     <div @click.stop="click_3" style="border: 1px solid #3793de">{{count}}</div>{{count}}
   </div>{{count}}
 </div>
<!--  once事件只触发一次-->
 <div @click.once="click_1" style="border: 1px solid #3793de">
   <div @click.once="click_2" style="border: 1px solid #3793de">
     <div @click.once="click_3" style="border: 1px solid #3793de">{{count}}</div>{{count}}
   </div>{{count}}
 </div>
<!--  事件修饰可以串联使用 同时实现stop 和once-->
 <div @click.once.stop="click_1" style="border: 1px solid #3793de">
   <div @click.once.stop="click_2" style="border: 1px solid #3793de">
     <div @click.once.stop="click_3" style="border: 1px solid #3793de">{{count}}</div>{{count}}
   </div>{{count}}
 </div>
<!--  其他的事件修饰符 -->
<!--  self 当事件对象的target属性是当前组件才触发-->
<!--  Prevent 禁止默认的事件-->
<!--  passive 不禁止默认的事件-->
</template>

<script>
export default {
 name: "listen",
 data(){
   return{
     count: 0,

   }
 },
 methods:{
   // 点击事件: count的值参数平方后 + 1
   click_btn_1(event){
     this.count = Math.pow(this.count, event)
     this.count += 1
   },
   //
   click_1(){
     this.count = this.count * 2
   },
   click_2(){
     this.count = this.count + 2
   },
   click_3(){
     this.count = this.count * 3
   }
 }
}
</script>

<style scoped>

</style>

vue事件监听和修饰符的评论 (共 条)

分享到微博请遵守国家法律