Vue2.0学习—事件处理和事件修饰符(三十二)

Posted 王同学要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue2.0学习—事件处理和事件修饰符(三十二)相关的知识,希望对你有一定的参考价值。

【Vue2.0学习】—事件处理和事件修饰符(三十二)

事件处理

事件的基本使用:
1、使用v-on:XXX或@XXX绑定事件,其中XXX是事件名
2、事件的回调需要配置在methods对象中,最终会在vm身上
3、methods中配置的函数,不要使用箭头函数,使用箭头函数指向window,否则就是vm
4、methods中配置的函数,都是被Vue所管理的函数,this的指向是vm或组件实例对象
5、@click="demo"和@click="demo($event)"效果一致,但后者可以传参

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>初识Vue</title>
    <!-- 引入Vue -->
    <script src="../js/vue.js"></script>
    <!-- 
    事件的基本使用:
    1、使用v-on:XXX或@XXX绑定事件,其中XXX是事件名
    2、事件的回调需要配置在methods对象中,最终会在vm身上
    3、methods中配置的函数,不要使用箭头函数,使用箭头函数指向window,否则就是vm
    4、methods中配置的函数,都是被Vue所管理的函数,this的指向是vm或组件实例对象
    5、@click="demo"和@click="demo($event)"效果一致,但后者可以传参
 -->
</head>

<body>
    <div id="root">
        <h1>欢迎来到name</h1>
        <!-- <button v-on:click="showInfo">欢迎来到湖南</button> -->
        <button @click="showInfo1">点我提示信息1(不传参)</button>
        <button @click="showInfo2($event,22)">点我提示信息2(传参)</button>
    </div>
    <script type="text/javascript">
        const vm = new Vue(
            el: '#root',
            data:  //数据供el所指定的容器去使用
                name: '湖南'
            ,
            methods: 
                showInfo1(event) 
                    //console.log(event.target.innerText);
                    alert('长沙欢迎你')
                        // console.log(this) //此处的this是vm
                ,
                showInfo2(event, number) 
                    //console.log(event.target.innerText);
                    alert('长沙欢迎你')
                        // console.log(this) //此处的this是vm
                

            
        );
    </script>
</body>

</html>

Vue中的事件修饰符

1、prevent:阻止默认事件(常用)
2、stop:阻止事件冒泡(常用)
3、once:事件只触发一次(常用)
4、capture:使用事件的捕获形式
5、self:只有event.target是当前操作的元素时才是触发事件
6、passive:事件的默认行为立即执行,无需等待事件回调执行完毕 
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
    <style>
        div 
            margin-top: 35px;
        
        
        button 
            margin-top: 20px;
        
        
        .demo 
            height: 50px;
            background-color: skyblue;
        
        
        .div1 
            background-color: skyblue;
            height: 100px;
        
        
        .div2 
            background-color: orange;
            height: 50px;
        
        
        .light 
            width: 200px;
            height: 200px;
            background-color: peru;
            overflow: auto
        
        
        li 
            height: 200px;
        
    </style>
</head>
<!-- 
    Vue中的事件修饰符
    1、prevent:阻止默认事件(常用)
    2、stop:阻止事件冒泡(常用)
    3、once:事件只触发一次(常用)
    4、capture:使用事件的捕获形式
    5、self:只有event.target是当前操作的元素时才是触发事件
    6、passive:事件的默认行为立即执行,无需等待事件回调执行完毕
 -->

<body>
    <div id="root">
        <h2>欢迎来到name</h2>
        <!--    1、prevent:阻止默认事件(常用) -->
        <a href="http://www.baidu.com" @click.prevent="show">点我提示信息</a>
        <!-- 2、stop:阻止事件冒泡(常用) -->
        <div class="demo" @click="show">
            <button @click.stop="show">点我提示信息</button>
        </div>
        <!--  3、once:事件只触发一次(常用) -->
        <button @click.once="show">点我提示信息</button>
        <!-- 4、capture:使用事件的捕获形式 -->
        <div class="div1" @click="showmesg(1)">
            div1
            <div class="div2" @click="showmesg(2)">
                div2
            </div>

        </div>
        <!--     5、self:只有event.target是当前操作的元素时才是触发事件
-->
        <div class="demo1" @click.self=" show">
            <button @click="show">点我提示信息</button点我提示信息</button>
        </div>
        <!--
    6、passive:事件的默认行为立即执行,无需等待事件回调执行完毕
      -->
        <!-- 滚动条@scroll -->
        <!-- <ul @scroll="demo" class="light"> -->
        <!-- 滚轮@wheel -->
        <ul @wheel="demo" class="light">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>

    </div>
    <script>
        const vm = new Vue(
            el: "#root",
            data: 
                name: '北京'
            ,
            methods: 
                show(e) 
                    //阻止跳转
                    //  e.preventDefault();
                    alert('哈哈哈');
                ,
                showmesg(msg) 
                    console.log(msg);
                ,
                demo() 
                    console.log('滚动');
                
            
        )
    </script>
</body>

</html>

以上是关于Vue2.0学习—事件处理和事件修饰符(三十二)的主要内容,如果未能解决你的问题,请参考以下文章

Vue2.0学习—键盘事件(三十三)

Vue.js 鼠标事件处理程序修饰符

Vue学习之路第八篇:事件修饰符

WPF学习第三十二章 执行命令

vue事件修饰符和键盘事件

20 六种事件修饰符:stoppreventcaptureselfonce和passive解决冒泡事件