vue事件修饰符的使用

如果需要在内联语句处理器中访问原生DOM事件。可以使用特殊变量$event,把它传入到methods中的方法中。

在Vue中,事件修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理。在Vue中事件修饰符主要有:

<div id="app">
  <div class="outer" @click="outer">
    <div class="middle" @click="middle">
      <div class="inner" @click="inner"></div>
    </div>
  </div>
  <input type="text" @keydown.f1="prompt" />
</div>
Vue.config.keyCodes = {
  f1: 112,
};
let app = new Vue({
  el: "#app",
  data() {
    return {};
  },
  methods: {
    inner: function () {
      console.log("inner:这是最里面盒子");
    },
    middle: function () {
      console.log("middle: 这是中间的盒子");
    },
    outer: function () {
      console.log("outer: 这是外面的盒子");
    },
    prompt: function () {
      alert("我是 F1");
    },
  },
});

1.stop

.stop相当于在每个方法中调用了event.stopPropagation(),点击子元素不会捕获到父元素的事件,也就阻止事件冒泡

2.prevent

.prevent等同于JavaScript的event.preventDefault(),用于取消默认事件。

3.capture

当有冒泡发生时,有该修饰符的dom元素会优先执行,如果有多个,则会从外向内(按照有>无capture修饰符的顺序)执行。

4.self

只会触发自身的事件,不会触发父元素或子元素的事件。

5.once

设置事件只能发生一次。

6.native

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

7.stop与self的区别

它们都有阻止冒泡的功能。
.stop 阻止事件向外冒泡,当给了子级.stop后它的父级就不会触发相关的点击事件
.self 只当在 event.target 是当前元素自身时触发处理函数,即事件不是从内部元素触发的

注意:
当子元素的点击事件使用stop时,父元素的点击事件不会触发,但父元素的双击事件会触发
当你双击时,相应的先触发单击事件再触发双击事件,即单击=>双击。
为了区分单双击事件,可以对点击的次数做记录,也可以自定义一些方法。

vue事件修饰符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值