vue-事件处理

2023-05-16

**

vue-事件处理

**
一般使用v-on来进行事件监听,在监听DOM事件时会触发一部分的js代码。

  • 使用v-on:xxx或@xxx绑定事件,xxx指 事件名。 事件的回调要写在methods对象中,最终会放在vm上。
    2. 中的函数由Vue管理,函数中的this指向vm或组件实例。
    3. methods中的函数一定不要写成箭头函数,一旦写成箭头函数,函数中的this就不再是vm了。
    @click="showInfo"click="showInfo($event)"效果一致,但后者可以传参。
    事件修饰符

  • prevent,阻止默认事件,同event.preventDefault()。

  • stop,阻止事件冒泡,同event.stopPropagation()。

  • once,事件只会触发一次。

  • capture,捕获阶段触发事件。

  • self,event.target是当前操作元素时才会触发事件,即event.target ==
    event.currentTarget返回true时。

  • passive,事件的默认行为会立即执行,无需等待事件回调执行完毕。

滚轮事件(不加修饰符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>demo1</title>
    <script src="../js/vue.js"></script>
    <style>
        .list{
            width: 200px;
            height: 200px;
            background: peru;
            overflow: scroll;

        }
        .item{
            height: 100px;
        }
    </style>
</head>
<body>
    <div id="root">
        <ul class="list" @wheel="showInfo">
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
        </ul>
    </div>
    <script>
        Vue.config.productionTip = false;

        const vm = new Vue({
            el:"#root",
            methods:{
                showInfo(){
                    for (let index = 0; index < 100000; index++) {
                        console.log("#");
                    }
                }
            }
        });        
    </script>
</body>
</html>

向下滚动滚轮触发事件,执行回调showInfo,showInfo执行完后,滚动条才会往下滑动。
滚轮事件(加修饰符passive)

<div id="root">
    <ul class="list" @wheel.passive="showInfo">
        <li class="item"></li>
        <li class="item"></li>
        <li class="item"></li>
        <li class="item"></li>
    </ul>
</div>

@wheel.passive时,滚动滚轮触发事件,滚动条会立即滑动,不用等回调showInfo执行完。
键盘修饰符

  • enter。如 @keyup.enter,键盘事件keyup发生且按键是回车键shagn(Enter)时,执行回调。
  • .delete。如@keyup.delete,键盘事件keyup发生且按键是删除键(Delete或Backspace)时,执行回调
  • .esc。如@keyup.esc,键盘事件keyup发生且按键是退出键(Esc)时,执行回调。
  • .space。如@keyup.space,键盘事件keyup发生且按键是空格键时,执行回调。
  • .up。如 @keyup.up,键盘事件keyup发生且按键是向上键(↑)时,执行回调。
  • .down。如@keyup.down,键盘事件keyup发生且按键是向下键(↓)时,执行回调。
  • .left。如@keyup.left,键盘事件keyup发生且按键是向左键(←)时,执行回调。
  • .right。如@keyup.right,键盘事件keyup发生且按键是向右键(→)时,执行回调。
  • .tab。如@keydown.tab,键盘事件keydown发生且按键是tab键时,执行回调。
    系统修饰符
  • ctrl。如,@keydown.ctrl,键盘事件keydown发生且按键是ctrl键(Ctrl)时,执行回调。
  • shift。如,@keydown.shift,键盘事件keydown发生且按键是Shift键(Shift)时,执行回调。
  • alt。如,@keydown.alt,键盘事件keydown发生且按键是alt键(Alt时,执行回调。
  • meta。如,@keydown.meta,键盘事件keydown发生且按键是meta键(⊞)时,执行回调。
    多个修饰符
  • .stop.prevent,先阻止冒泡,再阻止默认行为。
<!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>demo1</title>
    <script src="../js/vue.js"></script>
    <style>
        .container{
            background-color: skyblue;
            width: 200px;
            height: 100px;
        }
        .content{
            padding-top: 50px;
        }
    </style>
</head>
<body>
<div id="root">
    <div class="container" @click="showInfo">
        <div class="content">
            <a href="http://www.baidu.com" @click.stop.prevent="showInfo">点我提示信息</a>
        </div>
        
    </div>
</div>
    <script>
        Vue.config.productionTip = false;

        const vm = new Vue({
            el:"#root",
            methods:{
                showInfo(){    
                    alert("Hello");
                }
            }
        });        
    </script>
</body>
</html>
  • .ctrl.y。如@keyup.ctrl.y,键盘事件keyup发生且按键同时有Ctrl键和Y键时,执行回调。
<!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>demo1</title>
    <script src="../js/vue.js"></script>
</head>
<body>
<div id="root">
    <input type="text" @keyup.ctrl.y="showInfo">
</div>
    <script>
        Vue.config.productionTip = false;

        const vm = new Vue({
            el:"#root",
            methods:{
                showInfo(e){    
                    console.log(e.target.value);                 
                }
            }
        });        
    </script>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue-事件处理 的相关文章

随机推荐

  • Ethernet下字节序和bit序的总结

    Ethernet下字节序和bit序的总结 本文讲述的是在ethernet中多字节数据发送时涉及到字节序和bit序的剖析 关于字节序 大小端 和bit序 xff0c 以及MSB和LSB的叙述 xff0c 请另行学习 xff0c 本篇不涉及 正
  • C++ 智能指针 unique_ptr 详解与示例

    unique ptr 是 C 43 43 11 提供的用于防止内存泄漏的智能指针中的一种实现 xff0c 独享被管理对象指针所有权的智能指针 unique ptr对象包装一个原始指针 xff0c 并负责其生命周期 当该对象被销毁时 xff0
  • ECMAScript 6 中的数组方法 - forEach

    let colors 61 red blue green es5 遍历数组的方法 span class hljs keyword for span let span class hljs keyword index span 61 span
  • ECMAScript 6 中的数组方法 - map

    span class hljs variable span 场景 span class hljs number 1 span 假设有一个数字数组 xff08 a xff09 xff0c 奖a数组中的值一双倍的形式放到b数组 span cla
  • 写在Paper Reading之前

    写在Paper Reading 之前 2016年第一篇文章 xff0c 就以paper reading开头 xff0c 这段时间最少写五篇 xff0c 达到申请专栏的条件 通过申请专栏 xff0c 也可以达到监督作用 xff0c 催促自己多
  • C++进程PID编程

    一 获取pid t的字节长度 1 代码 include lt iostream gt using namespace std int main int argc char argv pid t pid cout lt lt 34 sizeo
  • 异常检测——集成学习

    Ensembles for Unsupervised Outlier Detection Challenges and Research Questions 首先 xff0c 知道一个模型好不好 xff08 精确不 xff09 外部指标内部
  • Centos 防火墙

    一 对于centos7自带的防火墙的相关指令 systemctl stop firewalld service 停止firewall systemctl disable firewalld service 禁止firewall开机启动 sy
  • MissionPlanner编译流程及问题详解

    MissionPlanner编译流程及问题详解 一 xff0c 介绍 MissionPlanner是一款基于C 开发的开源的地面站软件 xff0c 主要用在Windows Linux平台 MP使用广泛 xff0c 提供了较为完善的功能 xf
  • 学术论坛第三期:多指标异常检测方法综述

    学术论坛 第三期 推荐阅读时长 xff1a 13min 前言 朋友们 xff01 本期内容干货满满 xff01 参考文献引用30余篇 xff01 xff01 答应我这篇文章一定要看 xff01 xff01 xff01 本期论坛我们邀请中国人
  • 数据平台与Flink任务运行原理介绍

    本文将从5个方面详细介绍数据平台大数据任务开发的基础知识 包含数据平台的简介 如何在平台内创建Flink表 如何编写Flink大数据处理作业 Flink任务启动时的调用流程以及Flink web UI 任务监控页面 此外 xff0c 将重点
  • vue中模板和组件分离

    vue中模板和组件分离 第一种 xff1a 使用script xff0c 将其类型跟改为text x template 代码示例如下 xff1a span class token operator lt span span class to
  • vue中的生命周期(钩子函数)

    vue中的生命周期 xff08 钩子函数 xff09 下图是整个vue的生命周期 生命周期共有八个钩子函数 生命周期 xff1a vue是一个构造函数 xff0c 执行这个函数的时候 xff0c 即相当于实例化了这个函数 xff0c 因此我
  • paddle的两阶段基础算法基础

    paddle的两阶段基础算法详解与实践 有三部分分别是 xff1a 1 xff0c 两阶段算法发展历程 2 xff0c Faster R CNN原理解析 3 xff0c Paddle Detection实战演练 一 xff1a 两阶段算法的
  • Faster R-CNN网络架构

    Faster R CNN网络架构原理解析 Anchor的第一个分支是一个分类分支负责判断途中有没有东西 xff0c 但是不会判断物品 第二个分支是回归分支表示Anchor和真实值有多远最终提取的候选框尽量向真实值靠拢 RPN层是如何提取候选
  • Faster R-CNN原理详解

    Faster R CNN原理详解 首先将RPN输出以及将anchor解码 xff0c 然后对预测框进行clip xff0c 然后对预测狂进行过滤 xff0c filter将面积太小的过滤掉 xff0c 然后将分数较低的去掉 xff0c NM
  • linux出现“INFO: task xxxxxx: 634 blocked for more than 120 seconds.”的3种解决方案

    1 问题描述 最近搭建的一个linux最小系统在运行到241秒时在控制台自动打印如下图信息 xff0c 并且以后每隔120秒打印一次 仔细阅读打印信息发现关键信息是 hung task timeout secs xff0c 第一次遇到这样的
  • vue中的计算属性和侦听器

    vue中的计算属性和侦听器 computed xff08 计算属性 xff09 在模板中放入太多的逻辑不但难以维护 xff0c 就连作者自身在看到代码的时候可能都难以理解 vue开发了计算属性 xff0c 计算属性是依赖于本身的响应式以来进
  • vue-列表的渲染

    vue 列表的渲染 vue的列表渲染指令是基于v for的 xff0c 官方文档中是这么说的 v for 指令需要使用 item in items 形式的特殊语法 xff0c 其中 items 是源数据数组 xff0c 而 item 则是被
  • vue-事件处理

    vue 事件处理 一般使用v on来进行事件监听 xff0c 在监听DOM事件时会触发一部分的js代码 使用v on xxx或 64 xxx绑定事件 xff0c xxx指 事件名 事件的回调要写在methods对象中 xff0c 最终会放在