【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>


相关文章
|
2天前
|
前端开发 JavaScript
第九章 React中的事件处理
第九章 React中的事件处理
|
7月前
|
JavaScript
39Vue - 事件处理器(事件修饰符)
39Vue - 事件处理器(事件修饰符)
21 0
|
2天前
|
JavaScript
vue常用9个事件修饰符
Vue.js 提供了一些事件修饰符,用于处理 DOM 事件的细节。`事件修饰符是由点号(.)表示的后缀,放在事件名后面`。例如 v-on:click.stop 或 @click.stop。
|
2天前
|
前端开发 JavaScript UED
Vue3中的事件处理:事件绑定、事件修饰符、自定义事件
Vue3中的事件处理:事件绑定、事件修饰符、自定义事件
132 0
|
5月前
【Vue2.0】—事件处理和事件修饰符(二)
【Vue2.0】—事件处理和事件修饰符(二)
|
7月前
|
JavaScript 前端开发
37Vue - 事件处理器(方法事件处理器)
37Vue - 事件处理器(方法事件处理器)
18 0
|
9月前
|
JavaScript
Vue2事件及事件修饰符
从基础到实战,我们一环都不要少!
30 0
|
9月前
|
JavaScript
Vue事件修饰符
Vue事件修饰符
|
9月前
|
JavaScript
Vue事件处理+事件修饰符
Vue事件处理+事件修饰符
|
11月前
|
JavaScript 前端开发
《Vue3实战》 第六章 样式绑定和事件处理
《Vue3实战》 第六章 样式绑定和事件处理
72 0