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

第六节——Vue中的事件

一、定义事件

Vue 元素的事件处理和 DOM 元素的很相似,但是有一点语法上的不同

使用@修饰符(v-on:的缩写)+事件名的方式 给dom添加事件后面跟方法名,方法名可以直接加括号如@click="add()"里面进行传参。对应的事件处理函数必须在 methods对象中定义。

<template><div><!-- 在button上定义点击事件 --><button @click="hello('传入的参数')">你好</button></div>
</template>
<script>
export default {/*** methods 在vue定义 方法的属性对象* 所有的方法都必须在methods里面定义*/methods: {hello (msg) {console.log("事件触发啦哈哈哈")console.log(msg)}}
}</script>

二、事件修饰符

为了更好地处理事件,Vue3提供了一些便利的事件修饰符。事件修饰符可以用于改变默认事件行为、限制事件触发条件等如.stop、.prevent、.capture、.self、.once等等。下面是一些常用的事件修饰符用法

1、.stop

阻止事件冒泡,即停止事件在父元素中的传播。

<template><div class="box"  @click="handle2"><div class="box2" @click="handle"></div></div>
</template><script>
export default {methods: {handle () {console.log('触发')},handle2 () {console.log("冒泡")}}
}</script>

2、.prevent

阻止事件的默认行为,如提交表单或点击链接后的页面跳转。

<template><!-- 只触发点击事件,不触发跳转 --><a href="https://www.baidu.com" @click.prevent="handle">百度</a>
</template><script>
export default {methods: {handle() {console.log("触发");}},
};
</script>

3、.once

只触发一次事件处理方法,之后解绑事件

<template><button @click.once="handle">点击一次就失效</button>
</template><script>
export default {methods: {handle() {console.log("触发");},},
};
</script>

三、event对象

1、默认传入获取event

<template><!-- 如果事件什么都不传、并且不写()那么事件处理函数会默认接收到event对象--><button @click="handle">点击</button>
</template><script>
export default {methods: {handle(event) {console.log(event);},},
};
</script>

2、携带其他参数获取event

<template><!-- 使用在template里面使用$event获取当前事件的event对象--><button @click="handle('第一个参数', $event)">点击</button>
</template><script>
export default {methods: {handle(msg, event) {console.log(event);},},
};
</script>

四、在函数内使用this获取当前Vue上下文

可以直接使用this.xx 使用data里定义的状态,或者使用this.xx()调用methods里面定义的其他函数

注意:this指向问题

<template><button @click="handle">点击</button>
</template><script>
export default {data() {return {num: 1,};},methods: {handle() {console.log(this.num);this.handle2()},handle2() {console.log("第二个方法");},},
};
</script>
http://www.lryc.cn/news/207073.html

相关文章:

  • 设置GridView单选
  • [Python从零到壹] 七十二.图像识别及经典案例篇之OpenGL入门及绘制基本图形和3D图
  • 论文-分布式-并发控制-Lamport逻辑时钟
  • 长三角实现区块链电子医疗票据互联互通,蚂蚁链提供技术支持
  • Redis快速上手篇(三)(事务+Idea的连接和使用)
  • Spring三级缓存解决循环依赖问题
  • Unity 中使用波浪动画创建 UI 图像
  • 支付功能测试用例测试点?
  • HFS 快速搭建 http 服务器
  • 学生专用台灯怎么选?双十一专业学生护眼台灯推荐
  • Go 常用标准库之 fmt 介绍与基本使用
  • antv/x6 导出图片方法exportPNG
  • Decomposed Meta-Learning for Few-Shot Named Entity Recognition
  • C++经典面试题:内存泄露是什么?如何排查?
  • Hadoop+Hive+Spark+Hbase开发环境练习
  • 使用Spring Boot限制在一分钟内某个IP只能访问10次
  • ES 数据迁移最佳实践
  • C++中低级内存操作
  • Linux硬盘大小查看命令全解析 (linux查看硬盘大小命令)
  • 什么是供应链金融?
  • Qt之实现支持多选的QCombobox
  • 【UI设计】Figma_“全面”快捷键
  • 计算机网络(谢希仁)第八版课后题答案(第一章)
  • argparse模块介绍
  • 分布式、集群、微服务
  • Android Studio的debug和release模式及签名配置
  • 【深蓝学院】手写VIO第8章--相机与IMU时间戳同步--笔记
  • 【Java集合类面试二十一】、请介绍TreeMap的底层原理
  • Go语言Channel
  • java 编译 引用 jar 包进行编译和执行编译后的class文件