事件处理

监听事件

  • 可以用v-on指令监听dom事件,并在触发时运行一些JavaScript代码



    The button above has been clicked {{ counter }} times.



    var example1 = new Vue({
    el: '#example-1',
    data: {
    counter: 0
    }
    })

事件处理方法




var example2 = new Vue({
el: '#example-2',
data: {
name: 'Vue.js'
},
// 在 methods 对象中定义方法
methods: {
greet: function (event) {
// this 在方法里指向当前 Vue 实例
alert('Hello ' + this.name + '!')
// event 是原生 DOM 事件
if (event) {
alert(event.target.tagName)
}
}
}
})

// 也可以用 JavaScript 直接调用方法
example2.greet() // => 'Hello Vue.js!'

事件修饰符

event.preventDefault() event.stopPropagation()

  • vue.js为v-on提供了事件修饰符

  • .stop

  • .prevent

  • .capture

  • .self

  • .once







    ...



    ...

  • 使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用 v-on:click.prevent.self 会阻止所有的点击,而 v-on:click.self.prevent 只会阻止对元素自身的点击。

  • 2.1.4新增


  • 2.3.0新增

  • Vue还对应addEventListener中的passive选项提供了.passive修饰符




    ...

  • .passive修饰符尤其能够提升移动端的性能

按钮修饰符

  • 记住所有的 keyCode 比较困难,所以 Vue 为最常用的按键提供了别名:




    <input @keyup.enter="submit">

全部的按钮别名

  • .enter
  • .tab
  • .delete(捕获“删除”和“退格”键)
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right
  • 有一些按键 (.esc 以及所有的方向键) 在 IE9 中有不同的 key 值, 如果你想支持 IE9,它们的内置别名应该是首选。

系统修饰键

2.1.0新增

  • 可以用如下修饰符来实现仅在按下相应按键时才触发鼠标或键盘事件的监听器
  • .ctrl
  • .alt
  • .shift
  • .meta

.exact修饰符

  • 2.5.0新增.exact修饰符允许你控制由精确的系统修饰符组合触发的事件


    <button @click.ctrl="onClick">A


    <button @click.ctrl.exact="onCtrlClick">A


    <button @click.exact="onClick">A

鼠标按钮修饰符

  • 2.2.0新增
  • .left
  • .right
  • .middle
  • 这些修饰符会限制处理函数仅响应特定的鼠标按钮
posted @ 2018-03-13 18:44  不完美的完美  阅读(366)  评论(0)    收藏  举报