Vue 修饰符(总结)

216 阅读2分钟

Vue.js给大家提供了很多方便的修饰符。比如我们经常用到的.sync修饰符,阻止默认事件等~

目录

  • .sync修饰符
  • 事件修饰符
  • 键值修饰符

.sync修饰符

从 Vue2.3.0 起我们重新引入了 .sync 修饰符,但是这次它只是作为一个编译时的语法糖存在。它会被扩展为一个自动更新父组件属性的v-on 监听器

示例代码如下:

<child :money="total" v-on:useMoney="total" =$event"/>

监听updata事件,即下面代码中

<child :money="total" v-on:updata:money="total" =$event"/>

等价于

<child :money.sync="total" />

Vue官网上对.sync也有解释,简言之,:money.sync="total"就是:money="total" v-on:updata:money="total" =$event"的缩写.

.sync是一个 语法糖$event 保存了$emit的参数。

事件修饰符

  • .stop 由于冒泡机制,我们给元素绑定点击事件的时候,也会触发父级的点击事件
<div @click="shout(2)">
  <button @click="shout(1)">ok</button>
</div>

//js
shout(e){
  console.log(e)
}
//1
//2

一键阻止事件冒泡,简直方便到不行,相当于调用了event.stopPropagation()方法。

<div @click="shout(2)">
  <button @click.stop="shout(1)">ok</button>
</div>
//只输出1
  • .prevent
  • 用于阻止事件的默认行为,例如,当点击提交按钮时阻止对表单的提交。相当于调用了event.stopPropagation()方法。
<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>

键值修饰符

它都是用来修饰键盘事件的。

比如onkeyup,onkeydown

  • .keyCode
  • 如果不用keyCode修饰符,那我们每次按下键盘都会触发shout,当我们想指定按下某一个键才触发这个shout的时候,这个修饰符就有用了,具体键码查看键码对应表
<input type="text" @keypress.enter="xxx">

为了方便使用,vue给一些常用的键提供别名

//普通键
.enter 
.tab
.delete //(捕获“删除”和“退格”键)
.space
.esc
.up
.down
.left
.right

可查看官方文档