Vue 修饰符

117 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Vue 修饰符

事件修饰符

Vue.js 为 v-on 提供了 事件修饰符。通过由点(.)表示的指令后缀来调用修饰符。
修饰符可以串联。

.stop

阻止单击事件冒泡

.prevent

提交事件不再重载页面

.capture

添加事件侦听器时使用时间捕获模式

.self

只当事件在该元素本身(而不是子元素)触发时触发回调

.once

限制只能触发一次

.passive

当我们在监听元素滚动事件的时候,会一直触发onscroll事件,在pc端是没啥问题的,但是在移动端,会让我们的网页变卡,因此我们使用这个修饰符的时候,相当于给onscroll事件整了一个.lazy修饰符

.native

原生事件修饰符

表单修饰符

.lazy

异步更新输入内容

.trim

过滤首尾的空格

.number

限制输入数字

鼠标按键修饰符

<button @click.right="submit">submit</button>

left 左键点击

right 右键点击

middle 中键点击

键值修饰符

在监听键盘事件时,我们经常需要监测常见的键值。 Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

    <input @keyup.enter="submit">

全部的按键别名:

  • enter
  • tab
  • delete (捕获 “删除” 和 “退格” 键)
  • esc
  • space
  • up
  • down
  • left 左键点击
  • right 右键点击
  • middle 中键点击
  • ctrl
  • alt
  • meta
  • shift
  • exact
// 可以通过全局 config.keyCodes 对象自定义按键修饰符别名:
// 可以使用 v-on:keyup.f1
Vue.config.keyCodes.f1 = 112

v-model修饰符

懒加载 .lazy

在离开input时才更新输入的内容,在v-model后加上.lazy即可。

限定输入数字.number

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

去掉空字符.trim

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

缺点:只能去掉输入框改变时的前后空字符

v-bind修饰符

.sync

常用于组件双向绑定

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

.prop

.camel

用于不区分大小写