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


相关文章
|
并行计算 数据处理 API
再见 Pandas,又一数据处理神器!
再见 Pandas,又一数据处理神器!
231 0
|
监控 Shell Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
303 0
|
存储 分布式计算 Hadoop
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
820 0
OpenStack技术栈-OpenStack环境初始化
文章介绍了如何配置网卡bond模式,搭建时间同步服务器,并提供了OpenStack环境初始化的步骤和建议。
178 1
OpenStack技术栈-OpenStack环境初始化
|
存储 API Swift
Ceph Reef(18.2.X)之Swift操作对象存储网关
这篇文章详细介绍了Ceph Reef(18.2.X)中通过Swift API操作对象存储网关的方法,包括创建用户、子用户、配置环境变量、以及使用swift命令行工具进行存储桶和对象的管理。
156 7
Ceph Reef(18.2.X)之Swift操作对象存储网关
SD-WAN 应用选路方案
【2月更文挑战第29天】网络流量转发选路策略包括链路质量选路、链路负载分担选路和应用优先级选路。链路质量选路依据应用对链路质量的需求,如VoIP优先选择高质量MPLS,FTP则选择成本更低的互联网。动态检测链路质量并自动切换确保应用体验。链路负载分担则均衡各链路带宽使用,高带宽链路承载更多流量。应用优先级选路在链路拥塞时保障高优先级应用。SD-WAN选路依赖实时的链路和应用质量检测,以实现动态优化。
|
存储 编解码 算法
深入浅出:FFmpeg 音频解码与处理AVFrame全解析(一)
深入浅出:FFmpeg 音频解码与处理AVFrame全解析
2076 0
|
消息中间件 Java
RabbitMQ中的Binding是什么?它的作用是什么?
RabbitMQ中的Binding是什么?它的作用是什么?
397 0
|
设计模式
二十三种设计模式全面解析-原型模式(Prototype Pattern)详解:创造对象的奇妙之道
二十三种设计模式全面解析-原型模式(Prototype Pattern)详解:创造对象的奇妙之道
221 0
|
分布式计算 Cloud Native 数据可视化
重磅报告发布,从102个开源大数据项目深度研究开源大数据技术发展!
《2022年开源大数据热力报告》,由开放原子开源基金会、X-lab开放实验室和阿里巴巴开源委员会联合出品。报告基于公开数据研究最活跃的102个开源大数据项目,探寻出开源大数据技术发展背后的“摩尔定律”。
重磅报告发布,从102个开源大数据项目深度研究开源大数据技术发展!