Vue框架学习笔记——事件处理

文章目录

  • 前文提要
  • 事件处理的解析过程,v-on:事件名
    • 样例代码如下:
    • 效果展示图片:
    • v-on:事件名="响应函数"
    • v-on简写形式
    • 响应函数添加
    • 响应函数传参
    • 占位符"$event"
    • 注意事项


前文提要

本人仅做个人学习记录,如有错误,请多包涵


事件处理的解析过程,v-on:事件名

使用v-on指令为标签绑定事件,例如v-on:click能够为标签添加鼠标点击事件。
在这里插入图片描述
在绑定了事件之后,可以为其添加回调函数,响应这个事件。
当然,你完全可以不添加回调函数,不响应事件。
下面是为按钮提供鼠标点击时候的响应事件的处理函数。

样例代码如下:

<body><div id="box"><h2>哈哈,{{name}}</h2><button v-on:click="showInfo">点我提示信息</button></div><script type="text/javascript">Vue.config.productionTip = falseconst vm = new Vue({el: '#box',data: {name: '这里是name的值',},methods: {showInfo() {console.log('你好')}}})</script>
</body>

效果展示图片:

在这里插入图片描述

v-on:事件名=“响应函数”

以鼠标点击事件click举例首先是通过下列代码:

<button v-on:click="showInfo">点我提示信息</button>

在标签中加入v-on:click指令,添加事件的处理,然后为其添加响应函数,字符串中的就是响应函数的名字。

v-on简写形式

v-on指令可以简写为@
例如:v-on:click可以简写为@clickv-on:keydown可以简写为@keydown

响应函数添加

需要在Vue实例中增加一个配置属性methods,如同下面代码一样。
mothods属性中,不用加上function,因为这里写的都是函数,所以不必加上function;可以写多个函数,不是只能写一个,但是需要注意不要写成箭头函数,箭头函数中没有this,this指向的就是全局的window。

  <script type="text/javascript">Vue.config.productionTip = falseconst vm = new Vue({el: '#box',data: {name: '这里是name的值',},methods: {showInfo() {console.log('你好')}}})</script>

扯开话题,谈一些标签中回调函数的一些理解


<div id="box"><h2>哈哈,{{name}}</h2><button v-on:click="showInfo">点我提示信息</button>
</div>

这里写的是showInfo,其等价于showInfo(),也等价于showInfo($event)

回到正题,如果其余代码不改,只修改showInfo中的代码,改为:

showInfo() {console.log(event)
}

呈现效果如下:
在这里插入图片描述

默认会传一个当前事件的对象,通过event.target可以访问触发事件的元素
将上述代码中的部分改为这样即可:

console.log(event.target)

呈现效果如下:
在这里插入图片描述
还可以通过event.target.value访问带有value属性的元素的value值。

响应函数传参

如果需要响应函数传参直接在函数的括号中直接修改即可,例如把button中的代码改为:

<button v-on:click="showInfo(6)">点我提示信息</button>

methods中的函数改为:

 showInfo(a) {console.log(a)
}

呈现效果如下:
在这里插入图片描述
这样做可以传递参数,但是会丢失之前默认传参中的event,这里就不做展示了。
可以修改上面的代码来让event不丢失,那就是使用占位符"$event"

占位符"$event"

<button v-on:click="showInfo($event,6)">点我提示信息</button>

methods中的函数改为:

 showInfo(e,a) {console.log(e,'~~~',a)
}

在这里插入图片描述
从这里能看见’~~~'前面输出了事件,后面跟着一个6,event也没有丢失,6也正常传递了。
使用$event会更加灵活,能够传递更多的采纳数

注意事项

methods后面是配置对象,理论上data后面也是配置对象,函数也可以写道data中去,但是不建议这么做。
之前的数据代理中提到,data中的数据都会经过数据代理再在Vue实例中创建一个新的属性,函数不需要做数据代理,也就没必要写在data中。
如果在data中写了函数,做了数据代理,只会占用更多的资源。
methods不会做数据代理。


至此,结束。

如果你觉得这篇文章写的不错,多多点赞~收藏吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/218104.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA之异常详解

1. 异常的概念与体系结构 1.1 异常的概念 在Java中&#xff0c;将程序执行过程中发生的不正常行为称为异常 1. 算术异常 public class Test {public static void main(String[] args) {System.out.println(10/0);} } 因为 0 不能当被除数&#xff0c;所以报出了异常&#…

C++11【上】

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 目录 &#x1f449;&#x1f3fb; 统一的列表初始化&#x1…

unigui同页面内重定向跳转,企业微信内部应用开发获取用户code例子

procedure TMainForm.UniFormCreate(Sender: TObject); varurl: string;code: string; begin //如果没有code值&#xff0c;将进行重定向if UniApplication.Parameters.Values[code] thenbeginurl :https://open.weixin.qq.com/connect/oauth2/authorize?appid你们的企业ID&…

从0到0.01入门 Webpack| 004.精选 Webpack面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

RuntimeError: CUDA error: device-side assert triggered

背景&#xff1a; 使用SAGEConv卷积层的图神经网络&#xff0c;网络架构如下 原因&#xff1a; 我在卷积层之前改变了特征矩阵的维度&#xff0c;原本为[172,1,32] 现在改为了 [172,2,32]。导致了特征矩阵x在进行 “x x.squeeze(1)” 操作时并没有将第二向量值去除&#xff08…

Proteus仿真--基于DS1302与1602LCD设计的可调式电子日历与时钟

本文介绍基于51单片机的DS1302与1602LCD可调式电子日历与时钟&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真图如下 本设计中时间芯片选用DS1302芯片&#xff0c;液晶选用LCD1602模块&#xff0c;按键K1-K4&#xff0c;K1用于年月日时分选择&#xff0c;K2用于…

基于Scapy修改ClientHello的SNI(三)

需求:修改HTTPS的ClientHello中的SNI字段 目标:修改成功,wireshark显示正常 语言:Python 三方库:Scapy 下面是一个标准的ClientHello报文,是从一个完整的HTTPS流中保存出来的,原始报文中的SNI是www.baidu.com 在上一篇文章中 记录基于scapy构造ClientHello报文的尝试…

vue3+elementPlus之侧边菜单栏功能

选择默认的颜色&#xff0c;将代码拷贝至<el-aside>模块中 稍微把不需要的修改一下。 <template><div class"common-layout"><el-container><el-header class"homeHeader"><div class"headerTitle">Devops…

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话 1、会话列表2、会话类型3、搭建GB28181视频直播平台 1、会话列表 LiveGBS-> 国标设备-》点击在线状态 点击会话列表 2、会话类型 下拉会话类型可以看到 直播会话、回放会话、…

Javaweb之Vue组件库Element的详细解析

4 Vue组件库Element 4.1 Element介绍 不知道同学们还否记得我们之前讲解的前端开发模式MVVM&#xff0c;我们之前学习的vue是侧重于VM开发的&#xff0c;主要用于数据绑定到视图的&#xff0c;那么接下来我们学习的ElementUI就是一款侧重于V开发的前端框架&#xff0c;主要用…

C语言—冒泡排序

方法一&#xff08;不使用函数解决&#xff09; #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int arr[]{15,52,23,0,5,6,45,8,9,10};int i0;int j0;for ( i 0; i < 9; i){int flag1; //flag判断数组元素是否有序&#xff0c;这里先假设…

【C++那些事儿】类与对象(3)

君兮_的个人主页 即使走的再远&#xff0c;也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;我之前看过一套书叫做《明朝那些事儿》&#xff0c;把本来枯燥的历史讲的生动有趣。而C作为一门接近底层的语言&#xff0c;无疑是抽象且难度颇…