0


4.Vue中的事件处理,键盘事件,事件处理,事件修饰符

本人坚持更新C语言,数据结构,操作系统,前端知识,可以收藏+关注随时了解😜😜😜


1.键盘事件

** Vue中常用的按键别名:**

    回车 => enter

    删除 => delete (删除和退格)

    退出 => esc

    空格 => space

    换行 => tab(特殊,必须必须配合keydown)

    上 => up

    下 => down

    左 => left

    右 => right

系统修饰符(用法特殊):ctrl,alt,shift,meta(window)

    1.配合keydown使用

    2.使用keyup得按下其他键,然后再松那个键才行

**举一个按下回车的事件 **

<body>
    <div id="root">
        <h2>Welcome to {{name}}</h2>
        <input type="text" placeholder="按下回车提示输入" @keyup.enter='showInfo'>
    </div>
    <script>
        Vue.config.productionTip = false
        var vm = new Vue({
            el: "#root",
            data: {
                name: '爱打羽毛球的程序员的CSDN',
            },
            methods: {
                showInfo(e) {

                    console.log(e.target.value)
                }
            }
        })
    </script>
</body>

**按下回车弹出提示 **

2.事件处理

** 事件的基本使用**

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

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

    3.method中配置的函数不能用箭头函数

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

    ⭐事件也可以配置在data当中,但是这样会加重Vue的负担,data中的数据会进行数据代理和数据劫持

    如果把函数放在data中,会对函数也进行代理,但是函数并不需要进行数据代理

<body>
    <div id="root">
        <h2>欢迎来到{{name}}学习</h2>
        <button @click="showInfo">click me</button>
        <!--@click = v-on:click-->
        <button @click="showInfo2(66)">click me</button>
        <button @click="showInfo2(66,$event)">click me</button>

        <!--
            上面的showInfo,showInfo(66),
            一个有括号,一个没有,这里如果不传参数,可以不加,传参数的话,就需要加       
        -->
    </div>

    <script>
        Vue.config.productionTip = false

        new Vue({
            el: '#root',
            data: {
                name: 'CSDN',
            },
            methods: {
                showInfo() {
                    console.log(this)//此处是vm
                },
                showInfo2(number, event) {
                    console.log(number)
                }
            },

        })
    </script>
</body>

3.事件修饰符

Vue中的事件修饰符:

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

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

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

    4.capture:使用事件的捕获模式,(点击子元素,会发生冒泡事件的逆过程)

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

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

    ⭐事件修饰符可以连用
<body>
    <div id="root">
        <h2>欢迎来到{{name}}学习</h2>
        <a href="http://www.baidu.com" @click.prevent="showInfo">百度</a>
        <div class="demo" @click="showInfo">
            <button @click.stop="showInfo">click me(stop)</button>
        </div>
        <!--事件触发一次-->
        <button @click.once="showInfo">click me(once)</button>

        <!--事件的捕获-->
        <div class="box1" @click.capture="showInfo2">
            <div class="box2" @click="showInfo">
                capture
            </div>
        </div>

        <!--self-->
        <!--
            点击button的时候向上冒泡,e.target始终时button
            所以如果给div加上.self,就会因为div的e.target不是自己本身
            而不能运行,间接的阻止了事件的冒泡 
        -->
        <div class="demo" @click="showInfo">
            <button @click="showInfo">click me(self)</button>
        </div>

    </div>
    <script>
        Vue.config.productionTip = false
        var vm = new Vue({
            el: '#root',
            data: {
                name: 'CSDN',
            },
            methods: {
                showInfo(e) {
                    console.log(e.target)
                    alert("我是儿子")
                },
                showInfo2() {
                    alert("我是爸爸")
                }
            },
        })
    </script>

</body>

我们可以复制一下代码,来试试修饰符的作用


本文转载自: https://blog.csdn.net/weixin_46637351/article/details/125941724
版权归原作者 爱打羽毛球的程序员 所有, 如有侵权,请联系我们删除。

“4.Vue中的事件处理,键盘事件,事件处理,事件修饰符”的评论:

还没有评论