美文网首页
vue修饰符

vue修饰符

作者: 3e2235c61b99 | 来源:发表于2020-12-22 16:04 被阅读0次

事件修饰符

<!-- 阻止单击事件继续传播 -->
<a v-on:click.stop="doThis"></a>

<!-- 提交事件不再重载页面(拦截默认事件) -->
<form v-on:submit.prevent="onSubmit"></form>

<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>

<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>

<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div>

<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThat">...</div>

<!-- 点击事件将只会触发一次 -->
<a v-on:click.once="doThis"></a>

<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 -->
<!-- 而不会等待 `onScroll` 完成  -->
<!-- 这其中包含 `event.preventDefault()` 的情况 -->
<div v-on:scroll.passive="onScroll">...</div>

<!--让组件变成像html内置标签那样监听根元素的原生事件,否则组件上使用 v-on 只会监听自定义事件-->
<my-component v-on:click.native="doSomething"></my-component>

不要把 .passive 和 .prevent 一起使用,因为 .prevent 将会被忽略,同时浏览器可能会向你展示一个警告。请记住,.passive 会告诉浏览器你不想阻止事件的默认行为。

关于.prevent修饰符,看vue官网没看明白,看其他人的代码才看明白,代码如下:

<div @click="log(1)" @click.capture="log(11)">
    <div @click="log(2)" @click.capture="log(22)">
        <div @click="log(3)" @click.capture.stop="log(33)">
            <a @click="log(4)" @click.capture="log(44)" href="javascript: console.log('x')">stop</a>
        </div>
    </div>
</div>

<div @click="log(1)" @click.capture="log(11)">
    <div @click="log(2)" @click.capture="log(22)">
        <div @click="log(3)" @click.capture="log(33)">
            <a @click.prevent="log(4)" @click.capture="log(44)" href="javascript: console.log('x')">prevent</a>
        </div>
    </div>
</div>


log(str) {
    console.log(str)
},

输出结果如下:

// 点击stop
11
22
33
x

// 点击prevent
11
22
33
4
44
3
2
1

444先输出是因为在<a>标签内,@click.prevent="log(4)"写在@click.capture="log(44)"前面,没有其他原因,如果把<a>标签内的两个事件顺序换一下,444的输出顺序也会改变

表单修饰符

lazy

在我们填完信息,光标离开标签的时候,才会将值赋予给value,也就是在change事件之后再进行信息同步
.lazy修饰符对input有效,对el-input无效

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

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

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

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

<input v-model.number="age" type="number">
根据每一个修饰符的功能,我们可以得到以下修饰符的应用场景:

.stop:阻止事件冒泡
.native:绑定原生事件
.once:事件只执行一次
.self :将事件绑定在自身身上,相当于阻止事件冒泡
.prevent:阻止默认事件
.caption:用于事件捕获
.once:只触发一次

相关文章

  • 深入理解vue 修饰符sync【 vue sync修饰符示例】

    在说vue 修饰符sync前,我们先看下官方文档:vue .sync 修饰符,里面说vue .sync 修饰符以前...

  • 2018-10-11

    vue 修饰符sync【 vue sync修饰符示例】 先看下一个参考的文章:深入理解vue 修饰符sync【 v...

  • Vue事件修饰符

    Vue 事件修饰符 事件修饰符结合使用

  • vue中的修饰符

    事件修饰符 使用vue,让代码中只有纯粹的数据逻辑,而不是去处理DOM事件细节。 ---事件修饰符vue事件修饰符...

  • 2020-12-29

    Vue修饰符和事件 Vue修饰符:用来修饰事件的操作例如: 代码举例:阻止默认动作 1、v-on和其他支持的修饰符...

  • Vue面试考点准备03

    1、Vue中的修饰符有哪些? 修饰符是用于限定类型以及类型成员的声明的一种符号。Vue中修饰符分为如下五种:表单修...

  • Vue事件修饰符详解

    Vue事件修饰符详解(转) 整体学习Vue时看到Vue文档中有事件修饰符的描述,但是看了之后并没有理解是什么意思,...

  • 在vue中使用.stop阻止单击事件继续传播

    一、vue的事件修饰符 为了不在方法中处理DOM事件细节,vue中提供6个事件修饰符。分别是: .stop .pr...

  • 31.Vue v-model 修饰符

    与 Vue事件修饰符 类似,v-model也有修饰符,用于控制数据同步。 案例

  • Vue-day3

    Vue常用指令 修饰符 表单修饰符 v-model.lazy:change事件,失去焦点才改变.number ①限...

网友评论

      本文标题:vue修饰符

      本文链接:https://www.haomeiwen.com/subject/bbysnktx.html