前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue修饰符

Vue修饰符

作者头像
wade
发布2020-04-23 17:12:16
3730
发布2020-04-23 17:12:16
举报
文章被收录于专栏:coding个人笔记coding个人笔记

Vue提供了一些修饰符,这些修饰符在使用起来非常方便,比如阻止默认事件、冒泡等。

.lazy:

v-modeil不用多说,输入框改变,这个数据就会改变,lazy这个修饰符会在光标离开input框才会更新数据:

代码语言:javascript
复制
<input type="text" v-model.lazy="value">

.trim:

输入框过滤首尾的空格:

代码语言:javascript
复制
<input type="text" v-model.trim="value">

.number:

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

代码语言:javascript
复制
<input type="text" v-model.number="value">

.stop:

阻止事件冒泡,相当于调用了event.stopPropagation()方法。这个应该不需要解释:

代码语言:javascript
复制
<button @click.stop="test">test</button>

.prevent:

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

代码语言:javascript
复制
<a @click.prevent="test">test</a>

.self:

只有元素本身触发时才触发方法,就是只有点击元素本身才会触发。比如一个div里面有个按钮,div和按钮都有事件,我们点击按钮,div绑定的方法也会触发,如果div的click加上self,只有点击到div的时候才会触发,变相的算是阻止冒泡:

代码语言:javascript
复制
<div @click.self="test"></div>

.once:

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

代码语言:javascript
复制
<div @click.once="test"></div>

.capture:

事件的完整机制是捕获-目标-冒泡,事件触发是目标往外冒泡,比如:

代码语言:javascript
复制
<div @click="test(1)">  <button @click="test(2)">test</button></div>

顺序是2 1,capture的作用就是让这个顺序相反:

代码语言:javascript
复制
<div @click.capture="test(1)">  <button @click="test(2)">test</button></div>

先1 后2。

.passive:

其实我不怎么理解,官网解释说可以提升移动端的性能,查了查,大概解释就是每次滚动都会有一个默认事件触发,加了这个就是告诉浏览器,不需要查询,不需要触发这个默认事件preventDefault:

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

.native:

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

代码语言:javascript
复制
<My-component @click="shout(3)"></My-component>

鼠标.left、.reight、.middle:

就是鼠标点击的时候就触发:

代码语言:javascript
复制
<button @click.right="test">test</button>

.keyCode:

监听按键的指令,具体可以查看vue的键码对应表:

代码语言:javascript
复制
<input type="text" @keyup.enter="test(1)">
<button @click.enter="test(1)">test</button>

注意,只有你点击过一次或者聚焦到这个输入框才能使用键盘触发。

.exact:

系统修饰键,只有按着这个键然后用鼠标点击才会触发,官网解释:

代码语言:javascript
复制
<!-- 即使 Alt 或 Shift 被一同按下时也会触发 -->
 <button @click.ctrl="onClick">A</button> 
<!-- 有且只有 Ctrl 被按下的时候才触发 --> 
<button @click.ctrl.exact="onCtrlClick">A</button> 
<!-- 没有任何系统修饰符被按下的时候才触发 --> <button @click.exact="onClick">A</button>

但是我试了一下没有用。

.sync

对prop进行双向绑定,个人暂时用不习惯:

代码语言:javascript
复制
//父组件
<fa-comp :fatest.sync="test"></fa-comp>
//子组件
this.$emit('update:fatest,sontest);

(完)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档