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

vue.js中的一些事件修饰符【前端】

不要一直责怪过去的自己,他独自站在雾里也很迷茫。

目录

  • .stop:
  • .prevent:
  • .self:
  • .once:
  • .capture:
  • .native:
    • 何时使用 .native?

.stop:

作用:调用 event.stopPropagation(),阻止事件冒泡。

示例:

<template><div @click="parentClick"><button @click.stop="childClick">Click me</button></div>
</template><script>
export default {methods: {parentClick() {alert('Parent clicked!');},childClick() {alert('Child clicked!');}}
};
</script>

在这个例子中,点击按钮只会触发 childClick 方法,而不会触发 parentClick 方法。

.prevent:

作用:调用 event.preventDefault(),阻止默认事件的发生。

示例:

<template><form @submit.prevent="handleSubmit"><button type="submit">Submit</button></form>
</template><script>
export default {methods: {handleSubmit() {alert('Form submitted!');}}
};
</script>

在这个例子中,表单的提交事件被阻止,handleSubmit 方法会被调用,而不会实际提交表单。也就是表单的提交事件被阻止,这意味着当用户点击“Submit”按钮时,浏览器不会执行默认的表单提交行为。【因为默认情况下,表单提交会导致页面重新加载。】

.self:

作用:只有当事件目标是事件绑定的元素本身时,才触发事件处理程序。

示例:

<template><div @click.self="handleClick">Click me (only this div)</div>
</template><script>
export default {methods: {handleClick() {alert('Div clicked!');}}
};
</script>

在这个例子中,只有点击 div 本身时,才会触发 handleClick 方法,点击 div 内部的其他元素不会触发。

.once:

作用:只触发一次事件处理程序,之后自动移除。

示例:

<template><button @click.once="handleClick">Click me (once)</button>
</template><script>
export default {methods: {handleClick() {alert('Button clicked once!');}}
};
</script>

在这个例子中,点击一次按钮后会弹出提示框,但之后再点击按钮不会有任何反应。

.capture:

作用:使用事件捕获模式而不是冒泡模式。

示例:

<template><div @click.capture="handleClick">Click me (capture)</div>
</template><script>
export default {methods: {handleClick() {alert('Div clicked during capture phase!');}}
};
</script>

在这个例子中,事件处理程序会在事件捕获阶段被调用。

.native:

作用:用于在自定义组件上监听原生事件。

示例:

<template><custom-component @click.native="handleClick"></custom-component>
</template><script>
export default {methods: {handleClick() {alert('Native click event!');}}
};
</script>

在这个例子中,handleClick 方法会在 custom-component 的原生点击事件上被触发。

示例2:
有一个自定义的按钮组件 my-button,它内部有一个 元素。我们希望在点击这个按钮时触发一个事件:

<template><button @click="handleInnerClick">Inner Button</button>
</template><script>
export default {methods: {handleInnerClick() {// 处理内部按钮的点击事件console.log('Button clicked!');}}
}
</script>

如果在父组件中使用这个 my-button:

<my-button @click="handleClick">Click Me</my-button>

这里的 @click 监听的是 my-button 组件的自定义事件,而不是内部 <button> 的点击事件。

所以如果我们想监听内部 <button> 的点击事件,可以这样写:

<my-button @click.native="handleClick">Click Me</my-button>

何时使用 .native?

  • 使用自定义组件时:当您需要直接监听组件内部的原生事件,而不是组件发出的自定义事件时,使用 .native 修饰符。
  • 性能考虑:在某些情况下,使用 .native 可以减少事件的传播,因为您直接监听的是原生事件。
http://www.dtcms.com/a/163990.html

相关文章:

  • uni-app 中封装全局音频播放器
  • 深入蜂窝物联网 第四章 Cat-1 与 5G RedCap:带宽、低时延与未来趋势
  • 五、UI自动化测试05--PyTest框架
  • 【SpringBoot】基于MybatisPlus的博客管理系统(1)
  • 【Unity】使用Socket建立客户端和服务端并进行通信的例子
  • 东土科技NewPre系列智能控制器的创新之旅
  • VMware安装 银河麒麟操作系统桌面版 V10 SP1 2403
  • HotSpot的算法细节
  • 集群系统的五大核心挑战与困境解析
  • 4月28号
  • 漏洞复现清单整理-预备梳理,等待补充
  • 多维驱动:负载均衡何以成为现代系统架构的基石
  • 网络爬取需谨慎:警惕迷宫陷阱
  • Ansible安装配置
  • 代发考试战报:4月份 思科认证,华为认证,考试战报分享
  • Twitter 工作原理|架构解析|社交APP逻辑
  • 洛谷题解 | CF1979C Earning on Bets
  • <Revit二次开发> 通过一组模型线构成墙面,并生成墙。Create(Document, IList.Curve., Boolean)
  • 以梦为舟,驶向中医传承新蓝海
  • 宾馆一次性拖鞋很重要,扬州卓韵酒店用品详细介绍其材质与卫生标准
  • Windows 系统下使用 Docker 搭建Redis 集群(6 节点,带密码)
  • (计数)洛谷 P8386 PA2021 Od deski do deski/P10375 AHOI2024 计数 题解
  • Java项目中使用minio存储服务
  • softlockup_panic=1配置方法及区别
  • 基于论文的大模型应用:基于SmartETL的arXiv论文数据接入与预处理(四)
  • 常见的 CSS 知识点整理
  • 实验七:基于89C51和DS18B20的温度采集与显示
  • 源码角度分析 sync.map
  • C++智能指针滥用带来的性能与内存问题有哪些
  • 阿里云bgp服务器优势有哪些?搭建bgp服务器怎么做?