07_Vue事件处理

一、事件的基本使用

1.使用v-on:xxx@xxx 绑定事件,其中xxx是事件名;

2. 事件的回调需要配置在methods对象中,最终会在vm上;

3. methods中配置的函数,不要用箭头函数!否则this就不是vm了;

4. methods中配置的函数,都是被Vue所管理的函数,this的指向是vm 或 组件实例对象

5. @click="demo” @click="demo($event)” 效果一致,但后者可以传参。

<head>
    <script src="../js/vue.js"></script>
</head>

<body>
    <div id="root">
        <h2>欢迎{{name}}</h2>
        <!-- <button v-on:click="showInfo">点我提示信息</button> -->
        <button v-on:click="showInfo1">点我提示信息1(不传参)</button>
        <button v-on:click="showInfo2($events,66)">点我提示信息2(传参)</button>


    </div>

    <script type="text/javascript">

        const vm = new Vue({
            el: '#root',
            data: {
                name: '朱雀大人'
            },
            methods: {
                showInfo1(event) {
                    // console.log(this); //此处的this是vm
                    console.log(event.target);
                },
                showInfo2(event, number) {
                    console.log(event, number);
                }
            }
        })
    </script>
</body>

二、Vue中的事件修饰符

1.prevent: 阻止默认事件 (常用);

2.stop: 阻止事件冒泡 (常用) ;

3.once:事件只触发一次 (常用);

4.capture:使用事件的捕获模;

5.self:只有event.target是当前操作的元素时才触发事件;

6.passive:事件的默认行为立即执行,无需等待事件回调执行完毕。

小技巧:

修饰符可以连续写,例如@click.stop.prevent表示先阻止事件冒泡,再阻止默认事件。


前三种比较常用

1.prevent: 阻止默认事件 (常用);

2.stop: 阻止事件冒泡 (常用) ;

3.once:事件只触发一次 (常用);

代码如下:

<head>
    <script src="../js/vue.js"></script>
</head>

<body>
    <div id="root">
        <h2>欢迎{{name}}</h2>

        <!-- 阻止默认事件(常用) -->
        <a href="https://blog.csdn.net/min0320?type=blog" @click.prevent="showInfo">点我提示信息(阻止默认行为)</a>
        
        <!-- 阻止事件冒泡 -->
        <div class="demo1" @click="showInfo">
            <button @click.stop="showInfo">点我提示信息(阻止冒泡)</button>
        </div>

        <!-- 事件只触发一次 -->
        <button @click.once="showInfo">点我提示信息(只触发一次)</button>
    </div>

    <script type="text/javascript">
        const vm = new Vue({
            el: '#root',
            data: {
                name: '朱雀大人'
            },
            methods: {
                showInfo(e) {
                    // e.stopPropagation() //阻止事件冒泡
                    alert('原来是九霄神帝中的朱雀大人!')
                }
            }
        })
    </script>
</body>

三、键盘事件

1.Vue中常用的按键别名:

回车 => enter

删除 => delete (捕获“删除”和“退格”键)

退出 => esc

空格 => space

换行 => tab

上 => up

下 => down

左 => left

右 => right

<head>
    <script src="../js/vue.js"></script>
</head>

<body>
    <div id="root">
        <h2>欢迎{{name}}</h2>
        <input type="text" placeholder="按下回车提示输入" @keyup.enter="showInfo">
    </div>

    <script type="text/javascript">
        const vm = new Vue({
            el: '#root',
            data: {
                name: '朱雀大人'
            },
            methods: {
                showInfo(e) {
                    console.log(e.target.value);
                }
            }
        })
    </script>
</body>

2.Vue未提供别名的按键,可以使用按键原始的key值去绑定,但注意要转为kebab-case (短横线命名)

3.系统修饰键 (用法特殊) : ctrl、alt、shift、meta

(1).配合keyup使用: 按下修饰键的同时,再按下其他键,随后释放其他键,事件才被触发。

(2).配合keydown使用: 正常触发事件。

4.也可以使用keycode去指定具体的按键 (不推荐)

5.Vue.config.keyCodes.自定义键名 = 键码,可以去定制按键别名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值