vue修饰符

v-model修饰符

.lazy:

输入框改变,数据也跟着改变,lazy这个修饰符会在光标离开input框才会更新数据:

<input type="text" v-model.lazy="value" />

.trim:

输入框过滤首尾的空格

<input type="text" v-model.trim="value" />

.number:

先输入数字就会限制输入只能是数字,先字符串就相当于没有加number;注意:不是输入框不能输入字符串,是这个数据是数字

<input type="text" v-model.number="value" />

事件修饰符

.stop:

阻止事件冒泡,相当于调用了event.stopPropagation()方法:

<button @click.stop="test">test</button>

.prevent:

阻止默认行为,相当于调用了event.preventDefault()方法,比如表单的提交、a标签的跳转就是默认事件:

<a @click.prevent="test">test</a>

.self:

只有元素本身触发时才触发方法,就是只有点击元素本身才会触发(可以理解为跳过冒泡事件和捕获事件,只有直接作用在该元素上的事件才可以执行),比如一个div里面有个按钮,div和按钮都有事件,我们点击按钮,div绑定的方法也会触发,如果div的click加上self,只有点击到div的时候才会触发,变相的算是阻止冒泡:

<div @click.self="test">test</div>

.once:

只能用一次,无论点击几次,执行一次之后就不会再执行:

<button @click.once="test">test</button>

.captrue:

即内部元素触发的事件先在此处理,然后才交由内部元素进行处理(事件的完整机制是捕获-目标-冒泡,事件触发是目标往外冒泡),比如:

<div @click="testZu(1)">
      <div @click.capture="testFu(2)">
        <div @click="testZi(3)">test</div>
      </div>
</div>
    <!-- 点击test,在没有capture修饰符时,执行顺序:3,2,1
    有capture修饰符时,执行顺序:2,3,1 -->

.native:

组件绑定当前组件的事件是不会触发的,需要用native才能触发:

<my-component @click.native="test">test</my-component>
posted @ 2020-06-06 23:41  谬论结局  阅读(206)  评论(0编辑  收藏  举报