Vue修饰符的使用详解

 更新时间:2022年10月17日 11:30:07   作者:爱思考的猪  
为了方便大家写代码,Vue给大家提供了很多方便的修饰符,比如我们经常用到的取消冒泡,阻止默认事件等等,这篇文章将给大家分享Vue 中的常用的修饰符

事件修饰符的使用

<button @click.stop='func'>按钮</button>
  • stop 阻止冒泡(兼容) 等同于event.stopPropagation() 或 event.cancelBubble = true
  • prevent 阻止默认行为 等同于event.preventDefault()
  • capture 设置事件在捕获阶段执行
  • once 事件只执行一次,相当于addEventListener的第三个参数的passive设置为true
  • passive 设置过passive之后不会再阻止事件的默认行为,即使有event.stopPropagation,相当于设置addEventListener的第三个参数的passive为true
  • self 当target===this的时候执行,即当前元素本身触发点击事件时才执行

按键修饰符

vue提供了一些按键修饰符,如space、arrawLeft、arrawright、enter、esc等。使用这些修饰符只有按下指定按键才会执行对应的事件,其它的key可以通过keycode自行判断。

  • .enter
  • .tab
  • .delete
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right
<input @keyup.enter='func'/>

只有按下enter键的时候函数才会执行

有一些按键在ie9中有不同的key值,按键修饰符对此做了兼容

系统键修饰符

  • .ctrl
  • .alt
  • .shift
  • .meta 对应window的win键合mac的commond键
//shit + c
<input @keyup.shift.67='func'/>
//click + ctrl
<div @click.ctrl='func'>点击</div>

系统修饰键可以与点击事件keyCode一同使用

.exact修饰符用来精准的控制系统按键的执行方式

 //摁住shift + 任意键进行点击都会执行
<div @click.shift='func'>点击</div>
//有且仅有shift键被按下的时候才执行
<div @click.shift.exact='func'></div>
//没有任何系统修饰符时候才执行
<div @click.exact='func'></div>

鼠标按键修饰符

  • .left
  • .right
  • .middle
 //鼠标左键执行
 <div @click.left="childClick"></div>
 //鼠标右键执行,并阻止默认行为(取消右键菜单)
 <div @click.right="childClick"></div>
 //摁下鼠标滚轮执行
 <div @click.middle="childClick"></div>

表单修饰符

.lazy 用于优化v-model,将数据更新延迟至失去焦点,减少数据更新的频率。

<input v-model.lazy='val'/>

.number 将输入的文本类型转为数字,不合法的值会在失去焦后被清除(与type=number效果相同)

<input type='text' v-model.number='val'/>

.trim 去除文本输入中多余的空格,相当于字符串的trim方法

<input type='text' v-model.trim='val'/>

总结

  • Vue的修饰符包含了事件修饰符、按键修饰符、系统键修饰符、exact修饰符、鼠标按键修饰符、表单修饰符。
  • 事件修饰符包含stop、once、capture、prevent等,按键修饰符包含enter、esc、delete、left等,系统键修饰符包含alt、ctrl、shift、meta(系统键,win或command),鼠标按键修饰符包含left、right、middle,表单修饰符包含lazy、trim、number。
  • exact用于更精准的控制系统键。
  • lazy在表单输入元素失去焦点的时候才会更新vue的数据。
  • 能使用修饰符的时候尽量使用修饰符,修饰符具有兼容性。
  • 修饰符可以使用多个,顺序不同效果也不同。

到此这篇关于Vue修饰符的使用详解的文章就介绍到这了,更多相关Vue修饰符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 集成vue到jquery/bootstrap项目的方法

    集成vue到jquery/bootstrap项目的方法

    下面小编就为大家分享一篇集成vue到jquery/bootstrap项目的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Vue中babel.config.js配置示例详解

    Vue中babel.config.js配置示例详解

    Babel是一个JS编译器,主要作用是将ECMAScript2015+ 版本的代码,转换为向后兼容的JS语法,以便能够运行在当前和旧版本的浏览器或其它环境中,下面这篇文章主要给大家介绍了关于Vue中babel.config.js配置详解的相关资料,需要的朋友可以参考下
    2023-02-02
  • vue3如何监听页面的滚动

    vue3如何监听页面的滚动

    这篇文章主要给大家介绍了关于vue3如何监听页面的滚动的相关资料,在vue中实现滚动监听和原生js无太大差异,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • vue使用element-ui的el-input监听不了回车事件的解决方法

    vue使用element-ui的el-input监听不了回车事件的解决方法

    小编在使用element-ui时,el-input组件监听不了回车事件,怎么回事呢?下面小编给大家带来了vue使用element-ui的el-input监听不了回车事件的解决方法,一起看看吧
    2018-01-01
  • Vue3子组件实现v-model用法的示例代码

    Vue3子组件实现v-model用法的示例代码

    在Vue 3中,实现自定义的input组件并支持v-model绑定,涉及到对modelValue这个默认prop的处理和对应的update:modelValue事件的触发,本文给大家介绍了Vue3子组件实现v-model用法的示例,需要的朋友可以参考下
    2024-04-04
  • 如何在Vue3中使用视频库Video.js实现视频播放功能

    如何在Vue3中使用视频库Video.js实现视频播放功能

    在Vue3项目中集成Video.js库,可以创建强大的视频播放功能,这篇文章主要介绍了如何在Vue3中使用视频库Video.js实现视频播放功能,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • 讲解vue-router之命名路由和命名视图

    讲解vue-router之命名路由和命名视图

    这篇文章主要介绍了讲解vue-router之命名路由和命名视图,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 使用vuex存储用户信息到localStorage的实例

    使用vuex存储用户信息到localStorage的实例

    今天小编就为大家分享一篇使用vuex存储用户信息到localStorage的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 在vue中v-bind使用三目运算符绑定class的实例

    在vue中v-bind使用三目运算符绑定class的实例

    今天小编就为大家分享一篇在vue中v-bind使用三目运算符绑定class的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue+elementUI 实现内容区域高度自适应的示例

    vue+elementUI 实现内容区域高度自适应的示例

    这篇文章主要介绍了vue+elementUI 实现内容区域高度自适应的示例,帮助大家更好的理解和使用vue,感兴趣的朋友可以了解下
    2020-09-09

最新评论