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

Vue修饰符全解析

目录

一、事件修饰符

二、按键修饰符

三、系统修饰键

四、表单修饰符

五、鼠标修饰符

六、特殊修饰符

七、自定义修饰符

使用建议


一、事件修饰符
<!-- 阻止冒泡 -->
<button @click.stop="handleClick">点击测试</button><!-- 阻止默认行为 -->
<form @submit.prevent="handleSubmit"></form><!-- 事件捕获模式 -->
<div @click.capture="captureHandler"></div><!-- 仅当event.target是元素自身时触发 -->
<div @click.self="selfHandler"></div><!-- 单次触发 -->
<button @click.once="onceHandler"></button><!-- 滚动事件的默认行为立即触发 -->
<div @scroll.passive="onScroll"></div>

注意:修饰符顺序影响执行顺序,例如:

  • @click.prevent.self 先阻止默认再判断元素
  • @click.self.prevent 先判断元素再阻止默认
二、按键修饰符
<!-- 回车键触发 -->
<input @keyup.enter="submit"><!-- 删除键触发 -->
<input @keyup.delete="clear"><!-- 方向键触发 -->
<input @keyup.left="moveLeft"><!-- 精确控制组合键 -->
<button @click.ctrl.exact="ctrlClick">仅按Ctrl时触发</button>

支持按键别名:

  • .enter
  • .tab
  • .delete
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right
三、系统修饰键
<!-- Ctrl + C 触发 -->
<input @keyup.ctrl.67="copy"><!-- Alt + Enter 触发 -->
<input @keyup.alt.enter="specialSubmit"><!-- Shift + 点击 -->
<div @click.shift="shiftClick"></div>

系统修饰键:

  • .ctrl
  • .alt
  • .shift
  • .meta (Windows对应⊞键,Mac对应⌘键)
四、表单修饰符
<!-- 延迟同步 -->
<input v-model.lazy="msg"><!-- 自动转为数字 -->
<input v-model.number="age"><!-- 去除首尾空格 -->
<input v-model.trim="username">

五、鼠标修饰符
<!-- 左键点击 -->
<div @mousedown.left="leftClick"></div><!-- 中键点击 -->
<div @click.middle="middleClick"></div><!-- 右键点击 -->
<div @contextmenu.right="rightMenu"></div>

六、特殊修饰符
<!-- 原生事件监听 -->
<component @click.native="nativeClick"></component><!-- 属性双向绑定(Vue2语法) -->
<ChildComponent :title.sync="pageTitle" />

七、自定义修饰符
// 全局自定义修饰符
app.config.globalProperties.$customModifier = (el, binding) => {// 自定义处理逻辑
}

使用建议
  1. 组合修饰符时注意执行顺序:
<!-- 先阻止默认再停止冒泡 -->
<form @submit.prevent.stop></form>

  1. 性能优化建议:
  • 滚动事件建议配合.passive
  • 频繁触发事件使用.lazy.throttle
  1. 调试技巧:
<!-- 查看事件对象 -->
<button @click.shift.alt="(e) => console.log(e)">调试</button>

通过合理使用修饰符,可以显著提升代码简洁性和事件处理效率。建议根据实际场景选择最合适的修饰符组合。

http://www.xdnf.cn/news/646309.html

相关文章:

  • ISO 26262-5 区分失效模式
  • OWASP Juice-Shop靶场(⭐⭐)
  • (1-6-2)Java泛型
  • 基于 PARE-YOLO 的多尺度注意力融合小目标检测模型
  • SRS流媒体服务器(7)源码分析之拉流篇
  • JavaScript数据类型及内置函数详解目录
  • 【数据集】2020年150m分辨率全球城市建筑高度数据集
  • 阿里云OSS Api工具类不使用sdk
  • Javase 基础加强 —— 08 IO流
  • 林曦词典|创造力
  • 第3章 Java的基本成设计结构
  • Python 程序如何高效地调试
  • 使用Python从GHCN-Daily数据库下载和处理历史天气数据:完整指南
  • 单调栈(c++)
  • 布谷鸟过滤器 (Cuckoo Filter)
  • 健康密码:解锁现代养生新法则
  • 嵌入式学习 D27:系统编程--进程
  • 代码中数据类型如何去理解并正确
  • 150MB/3s传输+2K画质:这款远程桌面工具重新定义开源性能
  • 历年华东师范大学保研上机真题
  • Selenium 测试框架 - C#
  • Thread类的基本用法
  • DOM事件的传播机制
  • 贪心算法应用:最大匹配问题详解
  • Ollama学习1:安装、命令、API
  • C++语言入门————高精度计算
  • 基于RK3568处理器实现8路CAN总线PLC解决方案
  • numpy执行无缘无故崩溃 没有报错
  • Autodl训练Faster-RCNN网络--自己的数据集(二)
  • PCB文件从 Allegro 24.1 降级保存为 Allegro 17.4版本格式