vue.js事件处理

简介: vue.js事件处理
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <style type="text/css">
        .Odiv1{
            width: 80px;
            height: 80px;
            background: #aaa;
            margin: 5px;
        }
        .Odiv2{
            width: 50px;
            height: 50px;
            background: #ccc;
        }
    </style>
    <script src="js/vue.js"></script>
</head>
<body>
   <div id="app">
        <h3>一、事件处理</h3>
        <h4>1、鼠标事件</h4>
        <!-- increment增加   -->
        <button @click="inc($event)">+</button>
        <!-- v-bind单向绑定,只能显示data中的数据值 -->
        <!-- v-model双向绑定,既可以显示data的值,也可以修改data的数据 -->
        <input type="text" style="width: 50px;" v-bind:value="count" @keyup.up="inc($event)" @keyup.down="dec($event)">
        <!-- decrement减少   -->
        <button @click="dec($event)">-</button>
        <h4>2、键盘事件</h4>
        <!-- $event表示事件对象,只要产生一个事件,就会自动生成对应的事件对象,在该对象中保存与事件相关的信息 -->
        <!-- enter表示必须敲回车才会触发事件处理程序 -->
        <!-- tab键只能用keydown去监听-->
        <input type="text" @keyup.enter="handleKey($event)" placeholder="请敲击回车">
        <input  @keyup.shift.s="handleSave()" placeholder="请敲击shift+s">
        <h3>二、事件修饰符</h3>
        <h4>1、阻止事件冒泡</h4>
        <div @click="doParent()">
            <button @click="doThis()">事件冒泡</button>
            <button @click.stop="doThis()">阻止事件冒泡</button>
        </div>
        <h4>2、阻止默认行为</h4>
        <div @click="doParent()">
            <a href="https://www.baidu.com">不阻止默认行为</a>
            <a href="https://www.baidu.com" @click.prevent>阻止默认行为</a>
            <a href="https://www.baidu.com" @click.prevent.stop>既阻止默认行为又阻止事件冒泡</a>    
        </div>
        <h4>3、设置事件传播方向为捕获方向,也就是从父元素向子元素传播事件</h4>
        <div @click.capture="doParent()">
            <button @click="doThis()">事件捕获</button>
        </div>
        <h4>4、设置事件自身触发</h4>
        <div class="Odiv1" @click.self="doParent()">a
            <div class="Odiv2" @click="doThis()">b</div>
        </div>
        <h4>5、设置事件只触发一次</h4>
        <button>只执行一次</button>
   </div>
   <script>
       var vm = new Vue({
            el: '#app',
            data: {
                count: 0
            },
            methods: {
                inc(e){
                    this.count++;
                    // 通过事件对象的target属性获取真正引起该事件的那个网页标签
                    console.log(e.target.tagName)
                },
                dec(e){
                    this.count--;
                    console.log(e.target.tagName)
                },
                handleKey(e){
                    console.log('键盘被敲击了');
                    console.log('用户敲击了'+e.key);
                    // if(e.key=='Enter'){
                    //     alert('通过测试')
                    // }
                    alert('通过测试')
                },
                handleSave(){
                    console.log('shift+s组合键被敲击了');
                },
                doParent(){
                    console.log("我是父元素单击事件");
                },
                doThis(){
                    console.log("我是当前元素的单击事件");
                }
            }
       })
   </script>
</body>
</html>
相关文章
|
22天前
|
JavaScript 前端开发
js事件队列
js事件队列
|
11天前
|
JavaScript 前端开发
JavaScript 事件
JavaScript 事件
23 2
|
1月前
|
JavaScript 前端开发
javascript中常用的事件
这篇文章列出并演示了JavaScript中常用的DOM事件,包括失去焦点、获得焦点、鼠标点击、键盘事件等,并展示了如何通过直接在HTML标签中使用事件句柄和通过JavaScript为元素添加事件监听器两种方式来注册事件。
|
1月前
|
JavaScript 前端开发
JavaScript 事件的绑定
JavaScript 事件的绑定
28 0
|
3月前
|
JavaScript 前端开发
事件委托是JS技巧,通过绑定事件到父元素利用事件冒泡,减少事件处理器数量,提高性能和节省内存。
【6月更文挑战第27天】事件委托是JS技巧,通过绑定事件到父元素利用事件冒泡,减少事件处理器数量,提高性能和节省内存。例如,动态列表可共享一个`click`事件处理器,通过`event.target`识别触发事件的子元素,简化管理和响应动态内容变化。
35 0
|
11天前
Nest.js 实战 (十二):优雅地使用事件发布/订阅模块 Event Emitter
这篇文章介绍了在Nest.js构建应用时,如何通过事件/发布-订阅模式使应用程序更健壮、灵活、易于扩展,并简化服务间通信。文章主要围绕@nestjs/event-emitter模块展开,这是一个基于eventemitter2库的社区模块,提供了事件发布/订阅功能,使得实现事件驱动架构变得简单。文章还介绍了如何使用该模块,包括安装依赖、初始化模块、注册EventEmitterModule、使用装饰器简化监听等。最后总结,集成@nestjs/event-emitter模块可以提升应用程序的事件驱动能力,构建出更为松耦合、易扩展且高度灵活的系统架构,是构建现代、响应迅速且具有高度解耦特性的Nest.
|
25天前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
44 1
|
6天前
|
JavaScript 前端开发
|
1月前
|
JavaScript 前端开发
js的回车事件
js的回车事件
35 3
|
1月前
|
JavaScript 前端开发
JavaScript 事件的概念
JavaScript 事件的概念
48 1