vue 中的事件绑定修饰符详解


<div id="root">
 //普通点击事件可获取事件对象
 <div @click="handleclick">button</div>
  //普通点击事件不可获取事件对象
 <div @click="handleclick1()">button</div>
  //普通点击事件可获取事件对象
 <div @click="handleclick2($event)">button</div>
 //阻止表单默认提交
 <form action="/abc"  @click="handleclick3">
  <input type="submit"/>
 </form>
  //prevent修饰符阻止默认行为
  <form action="/abc"  @click.prevent">
     <input type="submit"/>
 </form>
  //stop修饰符阻止冒泡
  <form action="/abc"  @click.stop">
     <input type="submit"/>
 </form>
  //self修饰符只有点击本身才会被触发,self要求,click事件只有在e.target = e.currentTaget的时候才会执行
  <div action="/abc"  @click.self">
      嘎嘎嘎嘎嘎
    <div>点我没反应</div>
 </div>
 //once只有第一次点击的时候会被触发,触发之后不再触发
  <div @click.once="handleclick">button</div>
//capture遵循的是捕获的规则不是冒泡的规则,点击button的时候正常是冒泡的规则先执行handleclickInner再执行handleclickOuter,加了capture之后先执行handleclickOuter
 <div @click.capture="handleclickOuter">
 <div @click.capture="handleclickInner">button</div>
 //按键修饰符
  <input @keydown ="handleKeyDown"/>//实时监听
  <input @keydown.enter ="handleKeyDown"/>//只有点击回车才执行
  <input @keydown.tab="handleKeyDown"/>//只有点击tab才执行
  <input @keydown.delete="handleKeyDown"/>//只有点击delete才执行
  <input @keydown.esc="handleKeyDown"/>//只有点击esc才执行
  //系统修饰符
   <input @keydown.ctrl="handleKeyDown"/>//只有按住回车才执行
  <input @keydown.shift="handleKeyDown"/>//只有按住tab才执行
  <input @keydown.alt="handleKeyDown"/>//只有按住delete才执行
  <input @keydown.meta="handleKeyDown"/>//只有按住esc才执行
  //鼠标按键修饰符
  <div @click.left="handleclick">button</div>//只有鼠标左键点击的时候才会执行
  <div @click.middle="handleclick">button</div>//只有鼠标中键点击的时候才会执行
  <div @click.right="handleclick">button</div>//只有鼠标右键点击的时候才会执行
</div>
</div>
<script>
 var vm =new Vue({
      el:"#root",
      methods:{
          handleclick:function(e){
                 console.log(e)//事件对象
          }   
           handleclick1:function(e){
                 console.log(e)//获取不到事件对象
          }  
           handleclick2:function(e){
                 console.log(e)//事件对象
          }   
           handleclick3:function(e){
                e.preventDefault()//阻止默认行为
          }     
      }
  })
</script>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值