冇事来学系--Vue2.0事件修饰符和键盘修饰符

简介: 常用的事件修饰符(对事件的触发进行控制)

常用的事件修饰符(对事件的触发进行控制)


  • .prevent 阻止默认行为(如:阻止a链接的跳转、阻止表单的提交等)
  • .stop 阻止事件冒泡( 相当于event.stopPropagation )
  • .capture 以捕获模式触发当前的事件处理函数
  • .once 绑定的事件只触发一次(等同于$once方法)
  • .self 只有在event.target是当前元素自身时触发事件处理函数
  • .passive 事件的默认行为立即执行,不用等待事件的回调函数执行完毕
  • 阻止事件触发时的默认行为,原生js用的是事件对象e的e.preventDefault( )
<div id="app">
  <a href="https://www.baidu.com/" @click="show">跳转到百度首页</a>
</div>
const vm = new vue({
  el: '#app',
  methods: {
    show(e){
      // 在点击a链接后会跳转到百度首页,我们要阻止这个默认行为,可以用e.preventDefault()
      e.preventDefault()      // 原生js的方式
      console.log('点击了a链接')
    }
  }     
})
<div id="app">
  <!-- vue的事件修饰符,在给a链接绑定click事件的同时又阻止了a链接默认的跳转行为 -->
  <a href="https://www.baidu.com/" @click.prevent="show">跳转到百度首页</a>
</div>

补充:

  1. 事件修饰符是可以叠加连写的。如:既要阻止冒泡,又要阻止默认行为,则可以写成<a href="www.baidu.com" @click.stop.prevent="show">点我展示信息

键盘事件

键盘事件有两个,按下按键弹起时触发的keyup( )和按键按下时触发的keydown( )

若要求按下某一个按键才触发事件,则有以下两种方法:

  1. 在事件处理函数中,通过事件对象获取到触发事件的按键编码(e.keyCode),然后执行判断,当按键编码e.keyCode不是我想设置的按键编码时,直接return结束这个函数;当e.keyCode等于设置的按键编码,才执行事件处理函数

注意:e.key是获取到按键的名字,e.keyCode是获取到按键的编码

  1. 通过键盘按键修饰符来实现

在监听键盘事件时,我们经常要判断详细的按键。此时,可以为键盘相关事件添加按键修饰符

<!-- 例子 -->
<!-- @keyup绑定键盘事件 -->
<!-- 只有在key是Enter时才调用vm.submit() -->
<input type="text" @keyup.enter="submit">
<!-- 在输入框中,按下esc键清空输入框内容 -->
<!-- 只有在key是esc时才调用vm.clearInput() -->
<input type="text" @keyup.esc="clearInput">
const vm = new Vue({
  el: '#app',
  methods: {
    clearInput(e){
      e.target.value = ''         // 清空输入框内容
    },
    submit(){
    }
  }         
})

补充:

按键修饰符是可以组合着写的,如:<input type="text" @keyup.ctrl.y="show"> 只有当ctrl和y一起按的时候才会触发事件

目录
相关文章
|
自然语言处理 API iOS开发
IDEA 优质 插件 Translation 跟随 IDEA 2022.3 版 更新翻译引擎啦
IDEA 优质 插件 Translation 跟随 IDEA 2022.3 版 更新翻译引擎啦
4451 1
|
JavaScript 前端开发
uniapp仿微信聊天室|仿微信界面
基于uniapp+vue仿微信聊天室uniapp-chatroom项目,vue语法及类似小程序api开发原生APP应用,实现了发送图文消息、表情(gif动图),图片预览、地图位置、红包、仿微信朋友圈等功能。
3264 0
|
运维 Kubernetes 监控
K8S异常诊断之俺的内存呢
本文讲述作者如何解决客户集群中出现的OOM(Out of Memory)和Pod驱逐问题。文章不仅详细记录了问题的发生背景、现象特征,还深入探讨了排查过程中的关键步骤和技术细节。
888 108
K8S异常诊断之俺的内存呢
|
XML Java 开发工具
AAPT2简介
AAPT2简介
|
监控 NoSQL 大数据
【MongoDB复制集瓶颈】高频大数据写入引发的灾难,如何破局?
【8月更文挑战第24天】在MongoDB复制集中,主节点处理所有写请求,从节点通过复制保持数据一致性。但在大量高频数据插入场景中,会出现数据延迟增加、系统资源过度消耗、复制队列积压及从节点性能不足等问题,影响集群性能与稳定性。本文分析这些问题,并提出包括优化写入操作、调整写入关注级别、采用分片技术、提升从节点性能以及持续监控调优在内的解决方案,以确保MongoDB复制集高效稳定运行。
589 2
|
前端开发 JavaScript 测试技术
安卓应用开发中的架构模式解析
【6月更文挑战第21天】在软件开发领域,架构模式是设计优雅、高效、可维护应用程序的基石。本文深入探讨了安卓应用开发中常见的架构模式,包括MVC、MVP、MVVM和Clean Architecture,旨在为开发者提供一个清晰的指导,帮助他们选择最适合自己项目的架构风格。通过对比分析这些架构模式的特点、优势以及适用场景,文章揭示了如何根据项目需求和团队能力来采用恰当的架构模式,以实现代码的可维护性、可扩展性和可测试性。
351 7
|
存储 缓存 监控
详解缓存雪崩、缓存击穿、缓存穿透问题,一文掌握,干货不断
详解缓存雪崩、缓存击穿、缓存穿透问题,一文掌握,干货不断
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
564 5
|
机器学习/深度学习 人工智能 PyTorch
【深度学习】MNIST手写数字数据集的分类识别
【深度学习】MNIST手写数字数据集的分类识别
|
人工智能
【ABAQUS模态动力学】Composite&abaqus 预应力模态分析&输出单元刚度矩阵
模态分析的含义 | 理解振型和固有频率 | abaqus 预应力模态分析 | 输出单元刚度矩阵
1134 0

热门文章

最新文章

下一篇
开通oss服务