Vue前端开发:事件绑定方式

embedded/2024/12/27 22:47:44/

事件定义

在Vue中,当一个元素通过使用v-on或语法糖@指令绑定某个事件后,则完成了事件被定义的过程,在这定义的过程中,指令的后面是定义事件的名称,等号的后面是事件被触发后执行的函数,当然,也可以在事件名称的后面,使用“.”点语法,添加事件的修饰符,如stop、prevent等,接下来分析事件定义后底层执行的流程。

事件定义的过程,实质是事件被元素绑定的过程,Vue在这个过程的底层做了什么?首先是编译模板生成渲染内容,然后将渲染内容生成虚拟节点,再由虚拟节点生成真实的DOM节点,生成DOM节点后,最后通过addEventListener方法,将对应事件绑定到元素中,其实现的流程如下图4-1所示。
在这里插入图片描述

事件绑定方式

在Vue 中,元素事件绑定的方式依赖于指令v-on或@,一旦完成事件绑定后,当被绑定的事件触发时,将会自动执行事件对应的函数,即执行事件的处理方法。

指令v-on或@

指令v-on专门用于元素事件的绑定,添加时通过“:”冒号将指令与事件名称隔开,冒号右侧为需要绑定的事件名称;@是指令绑定事件的一种简写方式,也是一种语法糖写法,由于书写简单,因此,大部分的开发人员都使用这种方式绑定元素的事件。

实例4-1 指令绑定事件

1. 功能描述

在页面中,添加两个按钮和一个div元素,分别使用不同的指令绑定两个按钮的单击事件,当单击某个按钮时,div元素中将显示变量累加后的值。

2. 实现代码

在项目components 文件夹的ch4子文件夹中,添加一个名为“BindEvent”的.vue文件,在文件中加入如清单4-1所示代码。

代码清单4-1 BindEvent.vue代码

<template><div class="action"><div class="a-item"><input type="button" value="v-on 绑定" v-on:click="num += 1" /></div><!-- @ 等价于v-on 指令--><div class="a-item"><input type="button" value="@ 绑定" @click="num += 1" /></div><div class="a-item">数量:{{ num }}</div></div>
</template><script>
export default {name: "BindEvent",data() {return {num: 1,};},
};
</script>
<style scoped>
.action .a-item {margin: 10px 0;
}
.action .a-item input {width: 80px;height: 32px;
}
</style>

3. 页面效果

保存代码后,页面在Chrome浏览器下执行的页面效果如图4-1所示。
在这里插入图片描述
  4. 源码分析

在上述示例的模板代码中,使用v-on和@指令的写法是等价的,都可以执行事件处理过程,使绑定的num 变量值累加1,因此,num变量的初始值为1,点击后变会为2,再次点击时变为3,由于@指令的方式写法更精简,目前大部分都使用这种方式绑定元素的事件。
在这里插入图片描述


http://www.ppmy.cn/embedded/133979.html

相关文章

MySQL——test4(综合练习)

目录 建库建表&#xff08;题目&#xff09;处理表1. 修改student 表中年龄(sage)字段属性&#xff0c;数据类型由int 改变为smallint2. 为Course表中Cno 课程号字段设置索引,并查看索引3. 为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引&#xff0c;索引名为SC_INDE…

国内对接使用GPT解决方案——API中转

在这个数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为各行各业不可或缺的一部分。然而&#xff0c;对于国内用户来说&#xff0c;直接对接和使用GPT等大型AI模型却面临着诸多挑战。今天&#xff0c;我们将一起探讨这些挑战&#xff0c;并介绍一种解决方案—…

unity3d——Time

在Unity3D中&#xff0c;Time类是一个非常重要的工具类&#xff0c;它提供了一系列与时间相关的属性和方法&#xff0c;帮助开发者在游戏中实现各种时间相关的操作。以下是一些Time类常用的方法及其示例&#xff1a; 一、常用属性 Time.time 含义&#xff1a;表示从游戏开始到…

Servlet 3.0 新特性全解

文章目录 Servlet3.0新特性全解Servlet 3.0 新增特性Servlet3.0的注解Servlet3.0的Web模块支持servlet3.0提供的异步处理提供异步原因实现异步原理配置servlet类成为异步的servlet类具体实现异步监听器改进的ServletAPI(上传文件) Servlet3.0新特性全解 tomcat 7以上的版本都支…

新闻列表以及详情页面梳理

新闻列表页面&#xff1a;news.html <!DOCTYPE html> <html lang"en"> <!--引入--> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…

C++笔记---可变参数模板

1. 简单介绍与基本语法 可变参数模板是指模板的类型参数列表的的参数个数可变。 C11支持可变参数模板&#xff0c;也就是说支持可变数量参数的函数模板和类模板&#xff0c;可变数目的参数被称为参数包&#xff0c;存在两种参数包&#xff1a; 模板参数包&#xff1a;表示零或…

安宝特分享 | AR技术引领:跨国工业远程协作创新模式

在当今高度互联的工业环境中&#xff0c;跨国合作与沟通变得日益重要。然而&#xff0c;语言障碍常常成为高效协作的绊脚石。安宝特AR眼镜凭借其强大的多语言自动翻译和播报功能&#xff0c;正在改变这一局面&#xff0c;让远程协作变得更加顺畅。 01 多语言翻译优势 安宝特A…

HTTP 响应头信息与前后端交互时content-type重要性

以下是响应头的大部分属性 响应头信息中文翻译描述Date日期响应生成的日期和时间。例如&#xff1a;Wed, 18 Apr 2024 12:00:00 GMTServer服务器服务器软件的名称和版本。例如&#xff1a;Apache/2.4.1 (Unix)Content-Type内容类型响应体的媒体类型&#xff08;MIME类型&#…