当前位置:   article > 正文

《vue3基础知识》学习笔记 Day11_vue3中stoppropagation()

vue3中stoppropagation()

监听事件

v-on指令简写@

内联事件:

const count = ref(0)

<button @click='count++'>add 1</button>

<p>Count is :{{count}}</p>

简单的是这些,复杂的话就需要写方法了

在内联事件处理器中访问事件参数

<!-- 使用特殊的 $event 变量 -->
<button @click="warn('Form cannot be submitted yet.', $event)">
  Submit
</button>

<!-- 使用内联箭头函数 -->
<button @click="(event) => warn('Form cannot be submitted yet.', event)">
  Submit
</button>
function warn(message, event) {
  // 这里可以访问原生事件
  if (event) {
    event.preventDefault()
  }
  alert(message)
}
平时处理事件会用到event.preventDefault() 或 event.stopPropagation()

类似的vue提供了事件修饰符

  • .stop
  • .prevent
  • .self
  • .capture
  • .once
  • .passive

    <!-- 单击事件将停止传递 -->
    <a @click.stop="doThis"></a>

    <!-- 提交事件将不再重新加载页面 -->
    <form @submit.prevent="onSubmit"></form>

    <!-- 修饰语可以使用链式书写 -->
    <a @click.stop.prevent="doThat"></a>

    <!-- 也可以只有修饰符 -->
    <form @submit.prevent></form>

    <!-- 仅当 event.target 是元素本身时才会触发事件处理器 -->
    <!-- 例如:事件处理器不来自子元素 -->
    <div @click.self="doThat">...</div>

  • TIP

    使用修饰符时需要注意调用顺序,因为相关代码是以相同的顺序生成的。因此使用 @click.prevent.self 会阻止元素及其子元素的所有点击事件的默认行为而 @click.self.prevent 则只会阻止对元素本身的点击事件的默认行为。

  • .capture.once 和 .passive 修饰符与原生 addEventListener 事件相对应:

  • <!-- 添加事件监听器时,使用 `capture` 捕获模式 -->
    <!-- 例如:指向内部元素的事件,在被内部元素处理前,先被外部处理 -->
    <div @click.capture="doThis">...</div>

    <!-- 点击事件最多被触发一次 -->
    <a @click.once="doThis"></a>

    <!-- 滚动事件的默认行为 (scrolling) 将立即发生而非等待 `onScroll` 完成 -->
    <!-- 以防其中包含 `event.preventDefault()` -->
    <div @scroll.passive="onScroll">...</div>
    .passive 修饰符一般用于触摸事件的监听器,可以用来改善移动端设备的滚屏性能

  • 按键修饰符

  • 常用的
  • <!-- 仅在 `key` 为 `Enter` 时调用 `submit` -->
    <input @keyup.enter="submit" />
     
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/79352?site
推荐阅读
相关标签
  

闽ICP备14008679号