v-on: 事件处理简写@,及修饰符

news2024/9/23 1:22:50

v-on 是 Vue中用于绑定事件的指令。它可以绑定许多不同的事件,如:

  • click:鼠标点击事件
  • input:输入框内容变化事件
  • keydown:按键按下事件
  • keyup:按键松开事件
  • submit:表单提交事件
  • mouseover:鼠标悬浮事件
  • mouseout:鼠标移出事件
  • change:输入框内容改变事件
  • focus:获得焦点事件
  • blur:失去焦点事件
  • scroll:滚动事件

等,v-on:可以简写为@

1. 绑定监听的方式:

v-on:xxx="fun"

@xx事件名="fun"

@x事件名="fun(参数)"

默认事件形参: event

隐含属性对象: $event

2. 事件修饰符:

.prevent : 阻止事件的默认行为 event.preventDefault()

.stop : 停止事件冒泡 event.stopPropagation()

.once: 事件响应一次

3. 按键修饰符

.keycode : 操作的是某个keycode值的健

.enter : 操作的是enter键

<template>
  <div style="font-size: 14px">
    <h2>1. 绑定监听</h2>
    <button @click="handleClick1">测试点击自带的event</button>
    <button @click="handleClick2('click事件1')">测试点击传入的参数</button>
    <button @click="handleClick3('click事件+$event', $event)">测试点击传入的$event参数</button>   
    <span>测试多个事件</span>
    <input type="text" v-model="msg"
    @mouseover="handleMouseover"
    @mouseout="handleMouseout"
    @change="handleChange"
    @keyup="handleClickKeyup"
    @focus="handleFocus"
    @blur="handleBlur"
    >
    <br>

    <h2>2. 事件修饰符</h2>
    <!-- 
      停止事件冒泡
      阻止事件的默认行为
      事件监听只响应一次
    -->
    <div style="width: 200px; height: 200px; background: red;" @click="handleClick4">
      <div style="width: 100px; height: 100px; background: green;" @click.stop="handleClickStop"></div>
    </div>

    <a href="http://www.baidu.com" @click.prevent="handleClickPrevent">百度一下</a>
    <button @click.once="handleClickOnce">只响应一次点击</button>

    <h2>3. 按键修饰符</h2>
    <!-- vue2.0版本语法 可以使用 @keyup.13 代替@keyup.enter -->
    <span>按下回车触发</span>
    <input type="text" v-model="msg2" @keyup.enter="handleClickKeyupEnter">
  </div>
</template>

<script lang="ts">
// vue3.0版本语法
import { defineComponent , ref} from "vue";
export default defineComponent({
  name: "组件名",
  setup() {
    const msg = ref('');
    const msg2 = ref('');
    // click事件
    const handleClick1 = (event) => {
      console.log(event.target.innerHTML)
    }
    const handleClick2 = (text) => {
      console.log('测试点击传入的参数',text);
    };
    const handleClick3 = (text, event) => {
      console.log('测试点击传入的参数$event',text, event);
    };
    // -   `mouseover`:鼠标移入事件
    // -   `mouseout`:鼠标移出事件
    const handleMouseover = () => {
      console.log('鼠标移入');
    };
    const handleMouseout = () => {
      console.log('鼠标移出');
    };
    // -   `change`:输入框内容改变事件
    const handleChange = () => {
      console.log('输入框内容改变');
    };
    // -   `focus`:获得焦点事件
    const handleFocus = () => {
      console.log('获得焦点');
    };
    // -   `blur`:失去焦点事件
    const handleBlur = () => {
      console.log('失去焦点');
    };

    // 事件修饰符
    const handleClick4 = () => {
      console.log('测试点击触发了 外层');
    };
    const handleClickStop = () => {
      console.log('测试点击触发了stop修饰符');
    };
    const handleClickPrevent = () => {
      console.log('测试点击触发了prevent修饰符');
    };
    const handleClickOnce = () => {
      console.log('测试点击触发了once修饰符');
    };

    // 按键修饰符
    const handleClickKeyup = (key) => {
      console.log('按键触发了Keyup',key);
    };
    const handleClickKeyupEnter = () => {
      console.log('按键触发了Enter');
    };

    return {
      msg,msg2,
      handleClick1,handleClick2,handleClick3,
      handleClick4,handleClickStop,handleClickPrevent,
      handleClickOnce,handleClickKeyup,handleClickKeyupEnter,
      handleMouseover,handleMouseout,handleChange,handleFocus,handleBlur
    };
  },
});
</script>
事件触发后的页面效果:

欢迎关注我的原创文章:小伙伴们!我是一名热衷于前端开发的作者,致力于分享我的知识和经验,帮助其他学习前端的小伙伴们。在我的文章中,你将会找到大量关于前端开发的精彩内容。

学习前端技术是现代互联网时代中非常重要的一项技能。无论你是想成为一名专业的前端工程师,还是仅仅对前端开发感兴趣,我的文章将能为你提供宝贵的指导和知识。

在我的文章中,你将会学到如何使用HTML、CSS和JavaScript创建精美的网页。我将深入讲解每个语言的基础知识,并提供一些实用技巧和最佳实践。无论你是初学者还是有一定经验的开发者,我的文章都能够满足你的学习需求。

此外,我还会分享一些关于前端开发的最新动态和行业趋势。互联网技术在不断发展,新的框架和工具层出不穷。通过我的文章,你将会了解到最新的前端技术趋势,并了解如何应对这些变化。

我深知学习前端不易,因此我将尽力以简洁明了的方式解释复杂的概念,并提供一些易于理解的实例和案例。我希望我的文章能够帮助你更快地理解前端开发,并提升你的技能。

如果你想了解更多关于前端开发的内容,不妨关注我的原创文章。我会不定期更新,为你带来最新的前端技术和知识。感谢你的关注和支持,我们一起探讨交流技术共同进步,期待与你一同探索前端开发的奇妙世界!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「Bomkus 博士的试炼」排行榜规则更新

亲爱的玩家们 为了回应我们从社区收到的宝贵反馈&#xff0c;我们希望与大家分享我们为防止在「Bomkus 博士的试炼」排行榜中作弊而采取的措施的最新进展&#xff0c;并就这一主题提供更多说明。 除了在活动开始前采取的反作弊措施外&#xff0c;我们还根据观察到的和报告的行为…

新金融时代、AMCAP谱写财富梦想新篇章

近年来&#xff0c;智能配置投资与理财逐渐受到关注并走俏。这是一种简单快捷的智慧化理财方式&#xff0c;通过将个人和家族的闲置资金投入到低风险高流动性的产品中。 国际财富管理投资机构AMCAP集团金融分析师表示&#xff1a;智能配置投资与理财之所以持续走俏&#xff0c…

KMP基础架构

前言 Kotlin可以用来开发全栈, 我们所熟悉的各个端几乎都支持(除了鸿蒙) 而我们要开发好KMP项目需要一个好的基础架构,这样不仅代码更清晰,而且能共享更多的代码 正文 我们可以先将KMP分为前端和服务端 它们两端也能共享一些代码,比如接口声明,bean类,基础工具类等 前端和…

基于SpringBoot学生读书笔记共享

摘 要 本论文主要论述了如何使用JAVA语言开发一个读书笔记共享平台 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述读书笔记共享平台的当前背景以及系统开发的…

5 存储器映射和寄存器

文章目录 5.3 芯片内核5.3.1 ICache5.3.2 DCache5.3.3 FlexRAM 5.4 存储器映射5.4.1 存储器功能划分5.4.1.1 存储器 Block0 内部区域功能划分5.4.1.2 储存器 Block1 内部区域功能划分5.4.1.3 储存器 Block2 内部区域功能划分 5.5 寄存器映射5.5.1 GPIO1的输出数据寄存器 5.3 芯…

上海线下活动 | LLM 时代的 AI 编译器实践与创新

今年 3 月份&#xff0c; 2023 Meet TVM 系列首次线下活动从上海出发&#xff0c;跨越多个城市&#xff0c;致力于为各地关注 AI 编译器的工程师提供一个学习、交流的平台。 12 月 16 日 2023 Meet TVM 年终聚会将重返上海&#xff0c;这一次我们不仅邀请了 4 位资深的 AI 编…

2021年6月3日 Go生态洞察:Fuzzing技术的Beta测试

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

BUUCTF john-in-the-middle 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 注意&#xff1a;得到的 flag 请包上 flag{} 提交 密文&#xff1a; 下载附件&#xff0c;解压得到john-in-the-middle.pcap文件。 解题思路&#xff1a; 1、双击文件&#xff0c;打开wireshark。 看到很多http流…

Jmeter+ant+jenkins实现持续集成看这一篇就搞定了!

jmeterantjenkins持续集成 一、下载并配置jmeter 首先下载jmeter工具&#xff0c;并配置好环境变量&#xff1b;参考&#xff1a;https://www.cnblogs.com/YouJeffrey/p/16029894.html jmeter默认保存的是.jtl格式的文件&#xff0c;要设置一下bin/jmeter.properties,文件内容…

leetCode 78.子集 + 回溯算法 + 图解

给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2],[1,2],[3],[1…

金石工程项目管理系统 SQL注入漏洞复现

0x01 产品简介 金石工程项目管理软件是一款工程项目管理软件,专门针对建筑工程项目开发,可以用于各种工地的项目管理。 0x02 漏洞概述 金石工程项目管理系统TianBaoJiLu.aspx接口处存在SQL注入漏洞&#xff0c;攻击者可通过该漏洞获取数据库中的信息&#xff08;例如&#xff…

Linux中的fork()函数的面试题目

1.面试题目1 (1)fork 以后&#xff0c;父进程打开的文件指针位置在子进程里面是否一样&#xff1f;(先open再fork) (2)能否用代码简单的验证一下? (3)先fork再打开文件父子进程是否共享偏移量?父进程打开的文件指针位置在子进程里面是否一样&#xff1f;能否用代码简单验证一…

解决:ValueError: the first two maketrans arguments must have equal length

解决&#xff1a;ValueError: the first two maketrans arguments must have equal length 文章目录 解决&#xff1a;ValueError: the first two maketrans arguments must have equal length背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在…

Jmeter进阶使用:BeanShell实现接口前置和后置操作!

一、背景 我们使用Jmeter做压力测试或者接口测试时&#xff0c;除了最简单的直接对接口发起请求&#xff0c;很多时候需要对接口进行一些前置操作&#xff1a;比如提前生成测试数据&#xff0c;以及一些后置操作&#xff1a;比如提取接口响应内容中的某个字段的值。举个最常用…

L1-008:求整数段和

题目描述 给定两个整数A和B&#xff0c;输出从A到B的所有整数以及这些数的和。 输入格式&#xff1a; 输入在一行中给出2个整数A和B&#xff0c;其中−100≤A≤B≤100&#xff0c;其间以空格分隔。 输出格式&#xff1a; 首先顺序输出从A到B的所有整数&#xff0c;每5个数字占一…

保存规则、nat、自定义链

目录 一、保存防火墙的规则 1、保存规则 二、nat 一、SNAT和DNAT 1.SNAT 2 DNAT 三、自定义链 1.添加自定义链 2.设置自定义链并生效 3.删除自定义链 一、保存防火墙的规则 1、保存规则 [rootlocalhost ~]# iptables -A INPUT -s 172.16.114.30 -p tcp -m multiport…

echarts 地图

效果图 业务组件 <template><mapEcharts :itemStyle"mapProps.itemStyle" :emphasisLabelStyle"mapProps.emphasisLabelStyle":emphasisItemStyle"mapProps.emphasisItemStyle" :labelInfo"mapProps.labelInfo":rippleEffec…

leetCode 93.复原 IP 地址 + 回溯算法 + 图解 + 笔记

93. 复原 IP 地址 - 力扣&#xff08;LeetCode&#xff09; 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 "192.168.1.1…

信贷销售经理简历模板

这份简历内容&#xff0c;以信贷销售经理招聘需求为背景&#xff0c;我们制作了1份全面、专业且具有参考价值的简历案例&#xff0c;大家可以灵活借鉴。 信贷销售经理简历模板在线编辑下载&#xff1a;百度幻主简历 求职意向 求职类型&#xff1a;全职 意向岗位&#xff…

【隐私计算】VOLE (Vector Oblivious Linear Evaluation)学习笔记

近年来&#xff0c;VOLE&#xff08;向量不经意线性评估&#xff09;被用于构造各种高效安全多方计算协议&#xff0c;具有较低的通信复杂度。最近的CipherGPT则是基于VOLE对线性层进行计算。 1 VOLE总体设计 VOLE的功能如下&#xff0c;VOLE发送 Δ \Delta Δ和 b b b给send…