乐趣区

关于vue.js:vue事件修饰符

<!-- 阻止单击事件冒泡 -->
<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>
<!-- 只当事件在该元素自身(而不是子元素)触发时触发回调 -->
<div v-on:click.self="doThat">...</div>

<!-- click 事件只能点击一次,2.1.4 版本新增 -->
<a v-on:click.once="doThis"></a>
<!-- 只有在 keyCode 是 13 时调用 vm.submit() -->
<input v-on:keyup.13="submit">
<!-- 同上 -->
<input v-on:keyup.enter="submit">
<!-- 缩写语法 -->
<input @keyup.enter="submit">

` 全副的按键别名:

  • .enter
  • .tab
  • .delete (捕捉 “ 删除 ” 和 “ 退格 ” 键)
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right
  • .ctrl
  • .alt
  • .shift
  • .meta`
<p><!-- Alt + C -->  // 实例
<input @keyup.alt.67="clear">
<!-- Ctrl + Click -->
<div @click.ctrl="doSomething">Do something</div>

.lazy

在默认状况下,v-model 在 input 事件中同步输入框的值与数据,但你能够增加一个修饰符 lazy,从而转变为在 change 事件中同步:

<!-- 在 "change" 而不是 "input" 事件中更新 -->
<input v-model.lazy="msg" >

.number

如果想主动将用户的输出值转为 Number 类型(如果原值的转换后果为 NaN 则返回原值),能够增加一个修饰符 number 给 v-model 来解决输出值:

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

.trim

如果要主动过滤用户输出的首尾空格,能够增加 trim 修饰符到 v-model 上过滤输出:

<input v-model.trim="msg">
退出移动版