首页> 基础笔记 >Vue学习笔记 >基础和指令 基础和指令

vue事件处理指令v-on

作者:小萝卜 2024-03-09 浏览 90

简介我们可以使用 v-on 指令 (简写为 @) 来监听 DOM 事件,并在事件触发时执行对应的 JavaScript。用法:v-on:click="handler" 或 @click="handler"。

监听事件​

我们可以使用 v-on 指令 (简写为 @) 来监听 DOM 事件,并在事件触发时执行对应的 JavaScript。用法:v-on:click="handler" 或 @click="handler"。

事件处理器 (handler) 的值可以是:

      内联事件处理器:事件被触发时执行的内联 JavaScript 语句 (与 onclick 类似)。

      方法事件处理器:一个指向组件上定义的方法的属性名或是路径。

内联事件处理器​

内联事件处理器通常用于简单场景,例如:

<button @click="count++">Add 1</button>
<p>Count is: {{ count }}</p>
 
export default{
   data(){
      return{
          count:0
      }
   }

}


方法事件处理器​

      随着事件处理器的逻辑变得愈发复杂,内联代码方式变得不够灵活。因此 v-on 也可以接受一个方法名或对某个方法的调用。

举例来说:

data() {
  return {
    name: 'Vue.js'
  }
},
//选择式api方法或函数都写在这里
methods: {
  greet(event) {
    // 方法中的 `this` 指向当前活跃的组件实例
    alert(`Hello ${this.name}!`)
    // `event` 是 DOM 原生事件
    if (event) {
      alert(event.target.tagName)
    }
  }
}

      方法事件处理器会自动接收原生 DOM 事件并触发执行。在上面的例子中,我们能够通过被触发事件的 event.target.tagName 访问到该 DOM 元素。

在内联处理器中调用方法​(事件传递参数)

      除了直接绑定方法名,你还可以在内联事件处理器中调用方法。这允许我们向方法传入自定义参数以代替原生事件:

<button @click="say('hello')">Say hello</button>
<button @click="say('bye')">Say bye</button>
 
methods: {
  say(message) {
    alert(message)
  }
}

      有时我们需要在内联事件处理器中访问原生 DOM 事件。你可以向该处理器方法传入一个特殊的 $event 变量,或者使用内联箭头函数:

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

<!-- 使用内联箭头函数 -->
<button @click="(event) => warn('Form cannot be submitted yet.', event)">
  Submit
</button>
 
methods: {
  warn(message, event) {
    // 这里可以访问 DOM 原生事件
    if (event) {
      event.preventDefault()
    }
    alert(message)
  }
}

很赞哦! (0)

文章评论

    高端网站建设