1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vue 事件修饰符 按键修饰符

vue 事件修饰符 按键修饰符

时间:2019-02-09 18:18:53

相关推荐

vue 事件修饰符  按键修饰符

事件修饰符

在事件处理程序中调用event.preventDefault()event.stopPropagation()是非常常见的需求。

.stop

阻止单击事件传播 即阻止了事件冒泡,相当于调用了event.stopPropagation方法(通俗讲就是阻止事件向上级DOM元素传递)

<div @click="show(1)"><div @click="show(2)">测试</div></div>

点击“测试”输出

<div @click="show(1)"><div @click.stop="show(2)">测试</div></div>

点击“测试”输出

.prevent

阻止了事件默认行为,相当于调用了event.preventDefault方法

默认事件指对DOM的操作会引起自动执行的动作,比如点击超链接的时候会进行页面的跳转,点击表单提交按钮时会重新加载页面等,使用".prevent"修饰符可以阻止这些事件的发生。

<!-- 提交事件不再重载页面 --><form v-on:submit.prevent="onSubmit"></form><!-- 修饰符可以串联 --><a v-on:click.stop.prevent="doThat"></a>

.capture

捕获冒泡,即有冒泡发生时,有该修饰符的dom元素会先执行,如果有多个,从外到内依次执行,然后再按自然顺序执行触发的事件。(让事件触发从包含这个元素的顶层开发往下依次触发)

<!-- 添加事件监听器时使用事件捕获模式 --><!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 --><div v-on:click.capture="doThis">...</div>

.once

2.1.4新增

设置事件只能触发一次,比如按钮的点击等。

<!-- 点击事件将只会触发一次 --><a v-on:click.once="doThis"></a>

.self

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

<!-- 只当在 event.target 是当前元素自身时触发处理函数 --><!-- 即事件不是从内部元素触发的 --><div @click.self="doThat">...</div>

.passive

2.3.0新增

该修饰符大概意思用于对DOM的默认事件进行性能优化,根据官网的例子比如超出最大范围的滚动条滚动的。

以移动端监听元素滚动事件说明,在监听元素滚动事件的时候,会一直触发onscroll事件让页面变的越来越卡,因此在我们使用这个修饰符后,相当于给onscroll事件增加了.lazy修饰符

<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 --><!-- 而不会等待 `onScroll` 完成 --><!-- 这其中包含 `event.preventDefault()` 的情况 --><div v-on:scroll.passive="onScroll">...</div>

不要把.passive.prevent一起使用,因为.prevent将会被忽略,同时浏览器可能会向你展示一个警告。请记住,.passive会告诉浏览器你不想阻止事件的默认行为。

.native

在父组件中给子组件绑定一个原生的事件,就将子组件变成了普通的HTML标签,不加'. native'事件是无法触 发的。

让组件变成像html内置标签那样监听根元素的原生事件,否则组件上使用v-on只会监听自定义事件

按键修饰符

在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为v-on在监听键盘事件时添加按键修饰符

键盘修饰符用来修饰键盘的事件(如:onkeyup、onkeydown等),键盘的事件触发需要相对应的keyCode。然而keyCode存在很多,因此为了使用方便Vue给我们提供了别名的修饰符,分为以下两种:

普通按键(enter、delete、space、tab、esc…)

系统修饰键(ctrl、shift、alt…)

也可以直接用按键的代码来做修饰符(如:enter为13)

<!-- 只有在 `key` 是 `Enter` 时调用 `vm.submit()` --><!-- 键修饰符,键别名 --><input @keyup.enter="submit"><!-- 键修饰符,键代码 --><input @keyup.13="onEnter">

为了在必要的情况下支持旧浏览器,Vue 提供了绝大多数常用的按键码的别名:

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

同样vue监听按键事件也可以添加其他的按键:只要加上相应的按键的名称就行了

例如:@keyup.tab="";@keyup.delet = "";

里面写按键触发执行的事件就可以了。

参考来源:Vue常用的修饰符及使用的场景_Arvin-wm的博客-CSDN博客_vue常用的修饰符及作用

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。