8.6 修饰符
表单修饰符
填写表单,最常用的是input!v-model~
而我们的修饰符正是为了简化这些东西而存在的
.lazy
<div> <br/> <input type="text" v-model="value"/> <br/> <p> {{value}} </p> <br/></div><div> <input type="text" v-model="value"/> <p> {{value}} </p></div>
从这里我们可以看到,我们还在输入的时候,光标还在的时候,下面的值就已经出来了,可以说是非常地实时。
但是有时候我们希望,在我们输入完所有东西,光标离开才更新视图。
<div> <input type="text" v-model.lazy="value"><p>{{value}}</p></div>
这样即可~这样只有当我们光标离开输入框的时候,它才会更新视图,相当于在onchange事件触发更新。
.trim
在我们的输入框中,我们经常需要过滤一下前后的空格,那么只需要这么写:
<input type="text" v-model.trim="value"/>
需要注意的是,它只能过滤首尾的空格!首尾,中间的是不会过滤的
.number
看这个名字就知道,应该是限制输入数字或者输入的东西转换成数字
如果你先输入数字,那它就会限制你输入的只能是数字。
如果你先输入字符串,那它就相当于没有加.number
事件修饰符
.stop
由于事件冒泡的机制,我们给元素绑定点击事件的时候,也会触发父级的点击事件。
<div @click="shout(2) "> <button @click="shout(1)"/></div>
shout(e){ console.log(e)}
一键阻止事件冒泡,简直方便得不行。相当于调用了event.stopPropagation()方法。
<div @click="shout(2) "> <button @click.stop="shout(1)"/></div>
.prevent
用于阻止事件的默认行为,例如,当点击提交按钮时阻止对表单的提交。相当于调用了event.preventDefault()方法。
.passive
当我们在监听元素滚动事件的时候,会一直触发onscroll事件,在pc端是没啥问题的,但是在移动端,会让我们的网页变卡,因此我们使用这个修饰符的时候,相当于给onscroll事件整了一个.lazy修饰符
.left左键点击
.right右键点击
.middle中键点击
<input type="text" @keyup.keyCode="shout(4)"/>
<input type="text" @keyup.ctrl="shout(4)"/>
<input type="text" @keyup.ctrl.67="shout(4)"/>