Vue修饰符(Vue事件修饰符、Vue按键修饰符)

目录

前言

Vue事件修饰符

列举较常用的事件修饰符

.stop

.prevent

.capture

.once

Vue按键修饰符

四个特殊键

获取某个键的按键修饰符


前言

本文介绍Vue修饰符,包括Vue事件修饰符以及按键修饰符

Vue事件修饰符

列举较常用的事件修饰符

.stop:             停止事件冒泡        等同于event.stopPropagation()

.prevent:        阻止事件的默认行为        等同于 event.preventDefault()

.capture:        添加事件监听器时使用事件捕获模式

                        添加事件监听器包括两种不同的方式:

                        内到外(事件冒泡模式)、外到内(事件捕获模式)

.once:             事件只发生一次

没有任何修饰符的情况下

<div class="app">
        <div @click="three">
            <span @click="two">
                <button @click="one">{{msg}}</button>
            </span>
        </div>
    </div>
    <script>
        const vm = new Vue({
            el:'.app',
            data:{
                msg:'事件修饰符'
            },
            methods:{
                one(){
                   console.log('1');
                },
                two(){
                    console.log('2');
                },
                three(){
                    console.log('3');
                }
            }
        })
    </script>

程序会发生冒泡事件,依次在控制台打印出1,2,3

.stop

添加了.stop事件修饰符

<div class="app">
        <div @click="three">
            <span @click.stop="two"> //在此处添加stop修饰符,阻止事件冒泡
                <button @click="one">{{msg}}</button>
            </span>
        </div>
    </div>

在span标签上添加stop修饰符,控制台打印出1,2就会停止冒泡

.prevent

添加了.prevent事件修饰符

//在原有的代码基础上增加一个超链接
 <a href="http://www.baidu.com" @click.prevent="four">去百度</a>
//在methods中增加一个函数
 four(){
                    console.log('去百度');
                }

.capture

添加了.capture事件修饰符

内到外,也就是冒泡模式,控制台依次打印出1,2,3

外到内,事件捕获模式,控制台会依次打出3,2,1

 <div @click.capture="three">
            <span @click.capture="two">
                <button @click.capture="one">{{msg}}</button>
            </span>
        </div>

当只给span标签添加capture修饰符时

会优先打印2,其余的会按照默认的进行冒泡

<div @click="three">
            <span @click.capture="two">
                <button @click="one">{{msg}}</button>
            </span>
        </div>

.once

添加了.once事件修饰符

没有添加once事件修饰符前,每点击按钮一次,就会触发事件一次,添加了once事件修饰符后

 <div @click="three">
            <span @click="two">
                <button @click.once="one">{{msg}}</button>
            </span>
        </div>

我们给button添加了once,所以1只会打印一次,其余的会默认冒泡事件触发,答应出2,3

Vue按键修饰符

.enter 回车键

.delete 键

.esc 键

.space 空格键

.up 箭头上键

.dowm 箭头下键

.left 箭头左键

.right 箭头右键

.tab 键 (无法触发keyup事件,只能触发keydown事件) 

四个特殊键

ctrl,alt,shift,meta(也就是win标志,田)

对于keydown事件来说,只需要直接按下对应的键就可以触发

对于keyup时间来说,需要按下对应的键,并且加上按下组合键,然后松开组合键,才可以触发keyup事件.组合键就类似于:ctrl+c、ctrl+x等

<div class="app">
        <h1>{{msg}}</h1>
        回车键:<input type="text" @keyup.enter="getInfo">
       delete键:<input type="text" @keyup.delete="getInfo">
        esc键:<input type="text" @keyup.esc="getInfo">
        space键:<input type="text" @keyup.space="getInfo">
        up键:<input type="text" @keyup.up="getInfo">
        down键:<input type="text" @keyup.down="getInfo">
        left键:<input type="text" @keyup.left="getInfo">
        right键:<input type="text" @keyup.right="getInfo">
        tab键:<input type="text" @keydown.tab="getInfo">
    </div>
    <script>
        const vm = new Vue({
            el:'.app',
            data:{
                msg:'按键修饰符'
            },
            methods:{
                getInfo(e){
                    console.log(e.target.value);
                }
            }
        })
    </script>

按下对应的案件后会立即调用函数

获取某个键的按键修饰符

通过event.key获取这个键的真实名字

将这个真是名字以kebab-case风格进行命名 例:pageDown是真实名字,命名后,page-down

<div class="app">
        <h1>{{msg}}</h1>
       回车键:<input type="text" @keyup.enter="getInfo">
    </div>
    <script>
        const vm = new Vue({
            el:'.app',
            data:{
                msg:'按键修饰符'
            },
            methods:{
                getInfo(e){
                    console.log(e.key);
                }
            }
        })
    </script>

按下回车时,打印出相应的按键

  • 34
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软工不秃头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值