Vue修饰符

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Vue修饰符

爱思考的猪   2022-10-20 我要评论

事件修饰符的使用

<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的数据。
  • 能使用修饰符的时候尽量使用修饰符,修饰符具有兼容性。
  • 修饰符可以使用多个,顺序不同效果也不同。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们