vue的监听键盘事件的高效方法分分快三计划

作者:分分快三计划

 对于elementUI的input,我们需要在后面加上.native, 因为elementUI对input进行了封装,原生的事件不起作用。

 {{msg}} 

var vm = new Vue({ el:".box", data:{ msg:1 }, // 在 `methods` 对象中定义方法 methods:{ jia:function{ console.log

MouseEvent {isTrusted: true, screenX: 18, screenY: 107, clientX: 18, clientY: 17, …}

全部的按键别名:

可以用如下修饰符开启鼠标或键盘事件监听,使在按键按下时发生响应。

  •  .ctrl
  •  .alt
  •  .shift
  •  .meta

    Do something

监听事件

<!-- 按下Alt   释放C触发 -->
<input @keyup.alt.67="clear">

<!-- 按下Alt   释放任意键触发 -->
<input @keyup.alt="other">

<!-- 按下Ctrl   enter时触发 -->
<input @keydown.ctrl.13="submit">

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

<input v-on:keyup.13="submit">

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

修饰键:

Vue.js的事件处理

对于一些常用键,还提供了按键别名:

键值修饰符

与按键别名不同的是,修饰键和 keyup 事件一起用时,事件引发时必须按下正常的按键。换一种说法:如果要引发 keyup.ctrl,必须按下 ctrl 时释放其他的按键;单单释放 ctrl 不会引发事件。

不像其它只能对原生的 DOM 事件起作用的修饰符,.once 修饰符还能被用到自定义的组件事件上. 如果你还没有阅读关于组件的文档,现在大可不必担心。

<input v-model="form.name" placeholder="昵称" @keyup.enter="submit">

<el-input v-model="form.name" placeholder="昵称" @keyup.enter.native="submit"></el-input>

为什么在HTML中监听事件

 

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

<input @keyup.enter="submit">      <!-- 缩写形式 -->

事件修饰符

在我们的项目经常需要监听一些键盘事件来触发程序的执行,而Vue中允许在监听的时候添加关键修饰符:

注意:在Mac系统键盘上,meta对应命令键 。在Windows系统键盘meta对应windows徽标键。在Sun操作系统键盘上,meta对应实心宝石键 。在其他特定键盘上,尤其在MIT和Lisp键盘及其后续,比如Knight键盘,space-cadet键盘,meta被标记为“META”。在Symbolics键盘上,meta被标记为“META” 或者 “Meta”。

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

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

修饰键比正常的按键不同;修饰键和 keyup 事件一起用时,事件引发时必须按下正常的按键。换一种说法:如果要引发 keyup.ctrl,必须按下 ctrl 时释放其他的按键;单单释放 ctrl 不会引发事件。

.enter .tab .delete .esc .space .up .down .left .right

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

 {{msg}} 

var vm = new Vue({ el:".box", data:{ msg:1 }, methods:{ jia:function } }})
var vm = new Vue({ el:"#ar5", data:{ msg:1 }, methods:{ a:function{ console.log

修饰键

鼠标按键修饰符

内联处理器方法

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

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

.ctrl .alt .shift .meta

方法事件处理器

我们可以得到不同键的键值

......

扫一眼 HTML 模板便能轻松定位在 JavaScript 代码里对应的方法。 因为你无须在 JavaScript 里手动绑定事件,你的 ViewModel 代码可以是非常纯粹的逻辑,和 DOM 完全解耦,更易于测试。 当一个 ViewModel 被销毁时,所有的事件处理器都会自动被删除。你无须担心如何自己清理它们。

这些修饰符会限制处理程序监听特定的滑鼠按键

 {{msg}} 

var vm = new Vue({ el:".box", data:{ msg:1 },})

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

Do something

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

当然,如果你需要其他的键,vue.js也为你提供了可以通过全局 config.keyCodes 对象自定义键值修饰符别名:

.left .right .middle

.stop .prevent .capture .self .once

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

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划 浅谈 脚本 Vue 之家