vue2常用修饰符及其作用

阅读数:124 评论数:0

跳转到新版页面

分类

html/css/js

正文

一、概述

在Vue中,修饰符处理了许多dom事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多精力专注于程序的逻辑处理。

1、修饰符分类

(1)表单修饰符

(2)事件修饰符

(3)鼠标按键修饰符

(4)键值修饰符

(5)v-bind修饰符

二、表单修饰符

1、lazy

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

光标离开标签的时候,才会将值赋予给value。

2、trim

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

自动过滤用户输入的首空格字符,而中间的空格不会过滤。

3、number

<input v-model.number="age" type="number">

自动将用户的输入值转为数值类型,但如果这个值无法被parseFloat解析,则会返回原来的值。

三、事件修饰符

1、stop

<div @click="shout(2)">
  <button @click.stop="shout(1)">ok</button>
</div>
//只输出1

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

2、prevent

<form v-on:submit.prevent="onSubmit"></form>

阻止了事件的默认行为,相当于调用了event.preventDefault方法。

3、self

<div v-on:click.self="doThat">...</div>

只当在event.target是当前元素自身时触发函数。

使用修饰符,顺序很重要;因此v-on:click.prevent.self会阻止所有的点击,而v-on:click:self:prevent只会阻止对元素自身的点击。

4、once

<button @click.once="shout(1)">ok</button>

绑定的事件以后只能触发一次,第二次就不会触发。

5、capture

<div @click.capture="shout(1)">
    obj1
<div @click.capture="shout(2)">
    obj2
<div @click="shout(3)">
    obj3
<div @click="shout(4)">
    obj4
</div>
</div>
</div>
</div>
// 输出结构: 1 2 4 3 

使事件触发从包含这个元素的顶层开始往下触发。

6、passive

表示不阻止默认行为,主要用于提高性能。

7、native

<my-component v-on:click.native="doSomething"></my-component>

http://1024s.top/blog/detail?blogId=37960

四、鼠标按钮修饰符

<button @click.left="shout(1)">ok</button>
<button @click.right="shout(1)">ok</button>
<button @click.middle="shout(1)">ok</button>

分别表示左键点击,右键点击,中键点击。

@click/@dblclick 单击事件 / 双击事件
@mousedown/@mouseup 按下触发 / 抬起触发
@mousemove 当鼠标指针在指定的元素中移动时,就会发生 mousemove 事件
@mouseleave 当鼠标指针离开被选元素时,会发生 mouseleave 事件
@mouseout 与 mouseleave 事件不同,不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。
@mouseenter 当鼠标指针进入被选元素时,会发生 mouseenter 事件
@mouseover 与 mouseenter 事件不同,mouseover 事件在鼠标指针进入被选元素或任意子元素时都会被触发,mouseenter 事件只有在鼠标指针进入被选元素时被触发。
   

五、键盘修饰符

1、普通键(enter、tab、delete、space、esc、up...)

2、系统修饰键(ctrl、alt、meta、shift...)

// 只有按键为keyCode的时候才触发
<input type="text" @keyup.keyCode="shout()">

六、v-bind修饰符

1、async

能对props进行一个双向绑定

//父组件
<comp :myMessage.sync="bar"></comp> 
//子组件
this.$emit('update:myMessage',params);

相当于

//父亲组件
<comp :myMessage="bar" @update:myMessage="func"></comp>
func(e){
 this.bar = e;
}
//子组件js
func2(){
  this.$emit('update:myMessage',params);
}

(1)使用sync的时候,子组件传递的事件名格式必须为update:value,其中value必须与子组件中的props中声明的名称完全一致。

(2)注意带有.sync修饰符的v-bind不能和表达式一起使用

(3)将v-bind.sync用在一个字面量的对上,例如v-bind:sync="{title: doc.title}",是无法正常工作的。

2、camel

将命名变为骆峰命名法

 




相关推荐

vue提供了v-on:eventName这个语法来提供vue的事件绑定,通常使用@eventName这个语法粮代替上述语法。 .native- 监听组件根元素的原生事件。主要是给自定义的组件添加原生事

在一些情况下,我们可能会需要对一个prop进行双向绑定,但它破坏了单向数据流。 在vue 2.3.0,重新引入了.sync修饰符,这是一个语法糖。 例子: <

&lt;div id="app"&gt; &lt;div v-on:click="dodo"&gt;

所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流

一、父组件向子组件传值 父组件通过props的方式向子组件传递数据,props只可以从上一级组件传递到下一级组件,而且props只读。 1、基本示例 (1)创建子组件,在src/components/

一、概述 作用是给defineProps绑定默认值的 二、使用 父组件 <template> <TsSample :msg='msg' @on-updated='onUpdated' :tit

1、安装依赖 npm install svg-sprite-loader --save-dev 2、配置build文件夹中的webpack.base.conf.js 3、在src/component

在列表渲染时使用key属性 当Vue.js用v-for正在更新已渲染过的元素列表时,它默认用&ldquo;就地复用&rdquo;策略,如果数据项的顺序被改变,Vue将不会移动D

一、vue.js devtools开发工具的使用 1、安装 在chrome或firefox浏览器的扩展插件仓库里搜索vue devtool。 2、debugger的使用 假设我们想调试App.vue这

在登陆页的mouted生命周期方法中,添加 <pre class