当前位置: 首页 > news >正文

Vue中的事件绑定【3】

1.鼠标事件的绑定

1.概述:

  在js中我们已经了解过了事件的绑定方式(获取元素节点后,对元素节点进行事件绑定),实际上我们可以直接在标签元素上面绑定事件,并在Vue实例对象中添加一个methods属性,在此属性中添加对应的回调函数(即触发该事件时执行的内容);

2.语法:

   v-on:事件名="回调函数"
例: 在button元素上绑定单击鼠标事件<button v-on:click="showInfo">点击显示提示</button>简写:@事件名="回调函数"
例: <button @click="showInfo">点击显示提示</button>
    let vm = new Vue({methods: {// 写方法showInfo(event) {console.log('执行了showInfo:', event,this.name)},}})

3.案例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div id="root"><h2>Hello,{{name}}</h2><!--  事件的绑定  --><!--  指令 v-on:事件名="函数"  --><button v-on:click="showInfo">点击显示提示</button><br/><!--  简写 事件 v-on ---  @  --><!--    $event  表示 此处是事件对象 --><button @click="showInfo2($event,'我是消息')">点击显示提示</button></div>
<script src="vue/vue.js"></script>
<script>let vm = new Vue({data() {return {name: '猿究院'}},methods: {// 写方法showInfo(event) {console.log('执行了showInfo:', event,this.name)},showInfo2(event, msg) {console.log('执行了showInfo2:', event, msg)}}})//绑定容器vm.$mount("#root");
</script></body>
</html>

说明:在上述案例中有一个特殊的变量参数$event,他被作为参数传递给了showInfo2回调函数;

  • 这个$event代表了触发<button @click="showInfo2($event,'我是消息')">这个点击事件的原生 DOM 事件对象。
  • 通过这个事件对象,可以获取到与该事件相关的各种信息,比如事件类型、事件目标、鼠标位置(如果是鼠标事件)等。
  • 在事件被触发时,触发该事件的原生DOM对象会作为第一个参数传递到事件绑定函数中,如果事件绑定的函数本身就有参数,则需要在绑定函数时,函数的第一个参数用$event进行占位,后面的参数为函数本身的参数,如果不进行占位,则该原生DOM对象无法被传递到绑定的函数中

4.总结:

  • 可以使用v-on:事件名 或者 @事件名 绑定事件
  • 事件的回调函数必须写在 methods 对象下 最终会出现在vm上
  • 注意:methods对象中的方法 不能使用箭头函数 (否则this就不是vm了)
  • $event 占位符 表示此处为触发事件的原生DOM对象

2.键盘事件的绑定:

1.概述:

键盘事件的绑定与鼠标事件绑定的方式类似,也是通过v-on:事件名 或者  @事件名 绑定事件。同时可以通过常用的按键修饰符绑定特定的键盘事件

2.常见的键盘修饰符:

  1. .enter:回车键。
  2. .tab:制表键。
  3. .delete(捕获 “删除” 和 “退格” 键)。
  4. .esc:Escape 键。
  5. .space:空格键。
  6. .up.down.left.right:方向键。

3.案例分析:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<!--2.准备一个容器-->
<div id="root">
<!-- input输入框绑定键盘按下回车时触发事件,事件绑定了回调函数showinfo   --><input type="text" @keydown.enter="showInfo" v-model="name" placeholder="请输入...."/><!--    enter 回车   delete 删除 退格  esc space   tab   up down left  right ....-->
</div>
<!--1.引入Vue js 文件-->
<script src="vue/vue.js"></script>
<script type="text/javascript">//3.创建Vue对象let vm = new Vue({data() {return {name: '测试数据'}},methods: {showInfo(event) {//this 》》》》 Vue实例//打印触发该事件的键盘按键的键名,键的数字码,以及触发事件的DOM对象的name属性值console.log(event.key, event.keyCode,this.name)//打印触发事件的目标元素的当前值,等同于this.nameconsole.log(event.target.value)}}}).$mount("#root");
</script>
</body>
</html>  

说明:在上述案例中,我们给input标签元素绑定了一个键盘按下时触发的事件,并绑定了此事件的回调函数showinfo,将触发该事件的原生DOM对象传递到了回调函数中,在回调函数中,输出展示了一些相关信息,测试结果如上图所示;
http://www.xdnf.cn/news/624331.html

相关文章:

  • HarmonyOS:相机选择器
  • 人脸识别流程与算法对比报告
  • RPA+电子处方+在线问诊:数字药店APP智能化源码开发方案探索
  • MybatisPlus入门
  • (9)-java+ selenium->元素定位之By name
  • MVCC实现原理
  • TestHubo V1.0.8版本发布,支持按模块树筛选用例,让查询更便捷
  • Todesk 软件被锁定,不记得安全密码也进不去软件改不了问题解决
  • DVWA文件上传笔记
  • SDL2常用函数:SDL_Surface 数据结构及使用介绍
  • Java核心基础
  • Python爬虫实战:研究Newspaper框架相关技术
  • [创业之路-376]:企业战略管理案例分析-战略制定/设计-市场洞察“五看”:看宏观之当前的社会发展趋势与战略应对
  • AtCoder Beginner Contest 407(ABCDE)
  • ⭐️⭐️⭐️白嫖的阿里云认证⭐️⭐️⭐️ 第三弹【课时2:RAG应用的构建和优化】for「大模型Clouder认证:RAG应用构建及优化」
  • 【Excel 支持正则的方法】解决VBA引入正则的方法和步骤
  • MFC:获取所有打印机的名称(打印机模块-1)
  • OpenHarmony外设驱动使用 (十四),WLAN
  • 基于51单片机红外人体检测、防盗报警
  • 【C/C++】线程状态以及转换
  • RabbitMQ 概述与安装
  • Spring AI 之结构化输出转换器
  • Python实现对大批量Word文档进行自动添加页码(16)
  • 使用腾讯云3台轻量云服务器快速部署K8s集群实战
  • 如何制作可以本地联网搜索的MCP,并让本地Qwen3大模型调用搜索回答用户问题?
  • Appium+python自动化(五)- 模拟器
  • axios报错: Uncaught ReferenceError: axios is not defined
  • Qt基础:数据容器类
  • 算法中的数学:费马小定理
  • redis配置带验证的主从复制