当前位置: 代码网 > it编程>前端脚本>Vue.js > VUE3 click点击事件及修饰符详解

VUE3 click点击事件及修饰符详解

2024年09月06日 Vue.js 我要评论
只绑定一个点击事件<button @click="greet">单个点击事件</button>methods:{ greet(){ cons

只绑定一个点击事件

<button @click="greet">单个点击事件</button>
methods:{
        greet(){
            console.log('单个点击事件')
        }
    }

一个标签内绑定多个点击事件方法

<button @click="one($event), two($event)">多个点击事件</button>
methods:{
        one(e){
            console.log(e)
        },
        two(e){
            console.log(e)
        }
    }

事件修饰符

.stop 阻止单击事件继续冒泡(适用于出现嵌套点击事件时)

<div @click="box('我是大box')" style="width:500px; background:red">
    <button @click.stop="dothis('我是内嵌点击事件按')">单个点击事件</button>
 </div>
 methods:{
        dothis(val){
            console.log(val)
        },
        box(val){
            console.log(val)
        }
    }

.prevent 阻止默认事件

<form action="">
    <!-- 默认提交事件 -->
    <!-- <input type="submit" value="提交"> -->
    <!-- 阻止默认事件 -->
    <input type="submit" value="提交" @click.prevent="submitclick('prevent阻止默认事件')">
  </form>
methods:{
        submitclick(val){
            console.log(val)
        }
    }

.capture 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理

<form action="">
    <input type="submit" value="提交" @click.capture="submitclick('capture先在此处理')">
  </form>
methods:{
        submitclick(val){
            console.log(val)
        }
    }

.once点击事件将只会触发一次

<button @click.once="ononce('点击事件将只会触发一次')">点击事件将只会触发一次</button>
methods:{
        ononce(val){
            console.log(val)
        }
    }

.passive用在移动端的scroll事件,来提高浏览器响应速度,提升用户体验

<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发,   -->
<div @scroll.passive="onscroll">...</div>

修饰符串联使用(按循序执行)

// 按循序执行先执行阻止冒泡事件在执行阻止默认事件
<a @click.stop.prevent="dothat"></a>

tip

不要把 .passive 和 .prevent(阻止默认事件) 一起使用,因为 .prevent 将会被忽略,同时浏览器可能会向你展示一个警告。

请记住,.passive 会告诉浏览器你不想阻止事件的默认行为。

按键修饰符

vue 为最常用的键提供了别名:

  • .enter
  • .tab
  • .delete (捕获“删除”和“退格”键)
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right
<!-- 只有在 `key` 是 `enter` 时调用 `vm.submit()` 按enter键执行 -->
<input @keyup.enter="submit" />
<!-- 按delete 键执行 -->
<input @keyup.delete="submit" />

系统修饰键

  • .ctrl
  • .alt
  • .shift
  • .meta    
<!-- alt + enter 时触发-->
<input @keyup.alt.enter="clear" />

<!-- ctrl + click 按住加点击时触发-->
<div @click.ctrl="dosomething">do something</div>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com