博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue.2.0.5-事件处理器
阅读量:5424 次
发布时间:2019-06-15

本文共 2045 字,大约阅读时间需要 6 分钟。

监听事件

可以用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码。

示例:

这个按钮被点击了 {

{ counter }} 次。

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

结果:

增加 1

这个按钮被点击了 0 次。

方法事件处理器

许多事件处理的逻辑都很复杂,所以直接把 JavaScript 代码写在 v-on 指令中是不可行的。因此 v-on 可以接收一个定义的方法来调用。

示例:

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

结果:

Greet

内联处理器方法

除了直接绑定到一个方法,也可以用内联 JavaScript 语句:

new Vue({  el: '#example-3',  methods: {    say: function (message) {      alert(message)    }  }})

结果:

Say hi Say what

有时也需要在内联语句处理器中访问原生 DOM 事件。可以用特殊变量 $event 把它传入方法:

// ...methods: {  warn: function (message, event) {    // 现在我们可以访问原生事件对象    if (event) event.preventDefault()    alert(message)  }}

事件修饰符

在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求。尽管我们可以在 methods 中轻松实现这点,但更好的方式是:methods 只有纯粹的数据逻辑,而不是去处理 DOM 事件细节。

为了解决这个问题, Vue.js 为 v-on 提供了 事件修饰符。通过由点(.)表示的指令后缀来调用修饰符。

  • .stop
  • .prevent
  • .capture
  • .self
    ...
    ...

    按键修饰符

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

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

    全部的按键别名:

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

    可以通过全局 config.keyCodes 对象:

    // 可以使用 v-on:keyup.f1Vue.config.keyCodes.f1 = 112

    为什么在 HTML 中监听事件?

    你可能注意到这种事件监听的方式违背了关注点分离(separation of concern)传统理念。不必担心,因为所有的 Vue.js 事件处理方法和表达式都严格绑定在当前视图的 ViewModel 上,它不会导致任何维护上的困难。实际上,使用 v-on 有几个好处:

    1. 扫一眼 HTML 模板便能轻松定位在 JavaScript 代码里对应的方法。

    2. 因为你无须在 JavaScript 里手动绑定事件,你的 ViewModel 代码可以是非常纯粹的逻辑,和 DOM 完全解耦,更易于测试。

    3. 当一个 ViewModel 被销毁时,所有的事件处理器都会自动被删除。你无须担心如何自己清理它们。


    原文:

转载于:https://www.cnblogs.com/jiangxiaobo/p/6068038.html

你可能感兴趣的文章
将响应数据进行压缩处理的过滤器(CompressionFilter)
查看>>
安装Hadoop
查看>>
感性的人最理性,理性的人很感性
查看>>
《Java开发手册》学习进程之第4章控制流程语句
查看>>
log4j xml配置
查看>>
BZOJ 1924: [Sdoi2010]所驼门王的宝藏 【tarjan】
查看>>
杨辉三角+逆元 zoj 4006 牛客网 小白的式子
查看>>
c# .net 读取json 字符串 与序列化和反序列化json字符串
查看>>
CKEditor和CKFinder整合实现上传下载功能 【转】
查看>>
工作笔记-关于面试
查看>>
并发编程之信号量
查看>>
BootStrap入门教程 (二)
查看>>
C# 文件上传
查看>>
OpenGL 参数&&极限查询
查看>>
HelloWorld!
查看>>
OC总结第一讲:类和对象
查看>>
2018年东北农业大学春季校赛 E 阶乘后的0【数论】
查看>>
数据库连接的九大步骤
查看>>
POJ 2385 Apple Catching
查看>>
学习技术的注意要点
查看>>