vue 事件处理器

事件处理器

  1.监听事件

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

  2.方法事件处理器

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

  3.内联处理器方法

  除了直接绑定到一个方法,也可以用内联js语句

  有时也需要在内联语句处理器中访问原生DOM事件。可以用特殊变量$event把它传入方法。

<button v-on:click="warn(‘Form cannot be submitted yet.‘, $event)">

Submit

</button>


// ...

methods: {

warn: function (message, event) {

// 现在我们可以访问原生事件对象

if (event) event.preventDefault()

alert(message)

}

}

4.事件修饰符

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

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

  • .stop
  • .prevent
  • .capture
  • .self
  • .once
  • <!-- 阻止单击事件冒泡 -->

    <a v-on:click.stop="doThis"></a>

    <!-- 提交事件不再重载页面 -->

    <form v-on:submit.prevent="onSubmit"></form>

    <!-- 修饰符可以串联 -->

    <a v-on:click.stop.prevent="doThat"></a>

    <!-- 只有修饰符 -->

    <form v-on:submit.prevent></form>

    <!-- 添加事件侦听器时使用事件捕获模式 -->

    <div v-on:click.capture="doThis">...</div>

    <!-- 只当事件在该元素本身(比如不是子元素)触发时触发回调 -->

    <div v-on:click.self="doThat">...</div>

  • <!-- 点击事件将只会触发一次 -->

    <a v-on:click.once="doThis"></a>

  • 不想其它只能对原生的DOM事件起作用的修饰符,.once修饰符还能被用到自定义的组件事件

5.键值修饰符

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

为什么在HTML中监听事件?

你可能已经注意到这种监听事件的方式违背了关注点分离(separation of concern)传统理念。

不必担心,因为所有的vue.js事件处理方法和表达式都严格绑定在当前视图的viewModel上,它不会导致任何维护上的困难。实际上,使用v-on有几个好处

1,扫一眼HTML便能轻松定位在js代码里对应的方法。

2,因为你无须在js里手动绑定事件,你的viewModel可以是非常纯粹的逻辑,和DOM完全解耦,更易于测试。

3,当一个viewModel被销毁时,所有的事件处理器都会被自动删除,你无须担心如何清理他们。

时间: 2024-10-13 02:56:10

vue 事件处理器的相关文章

vue事件处理器

1.监听事件 可以用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码. 示例: <div id="example-1"> <button v-on:click="counter += 1">增加 1</button> <p>这个按钮被点击了 {{ counter }} 次.</p> </div> var example1 = new Vue({ el: '#example

关于vue.js中事件处理器的练习

html: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>事件处理器</title></head><body> <!-- 监听事件 --> <!-- 可以用v-on监听DOM事件触发js --> <div id="app-1">

Vue 方法与事件处理器

方法与事件处理器 方法处理器 可以用 v-on 指令监听 DOM 事件: <div id="example"> <button v-on:click="greet">Greet</button> </div> 我们绑定了一个单击事件处理器到一个方法 greet.下面在 Vue 实例中定义这个方法: var vm = new Vue({ el: '#example', data: { name: 'Vue.js' },

vue之事件处理器

可以用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码. 监听事件 可以用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码. <div id="example-1"> <button v-on:click="counter += 1">增加 1</button> <p>这个按钮被点击了 {{ counter }} 次.</p> </div> var

Vue深度学习(4)-方法与事件处理器

方法处理器 可以用 v-on 指令监听 DOM 事件: <div id="app"> <button v-on:click = "greet">Greet</button> </div> Js代码 new Vue({ el: '#app', data: { message: '菜鸟教程!' }, methods:{ greet:function () { alert("OP"); } } }) 内联

事件处理器v-on:(event)/@(event)

<!DOCTYPE html> <html lang="zh"> <head> <title></title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="http

Qt中事件处理的方法(三种处理方法,四种覆盖event函数,notify函数,event过滤,事件处理器。然后继续传递给父窗口。可观察QWidget::event的源码,它是虚拟保护函数,可改写)

一.Qt中事件处理的方式 1.事件处理模式一 首先是事件源产生事件,最后是事件处理器对这些事件进行处理.然而也许大家会问, Qt中有这么多类的事件,我们怎么样比较简便的处理每个事件呢?设想,如果是每个事件都对应同一个事件处理器,在该事件处理器中对不同的事件进行分类处理,这样的弊端有两点:第一,导致该事件处理器过于臃肿复杂:第二,这样不便于扩展,当系统新增加事件类型或者是我们需要使用到自定义事件时,就不得不修改Qt的源码来达到目的.所以Qt设计者的做法是针对不同类型的事件提供不同的事件处理器与之对

jQuery事件处理器的绑定及解除方法

前几天用bind()方法做事件绑定的时候发现还有其他几种事件绑定的方法,查阅了之后对比总结一下.内容详情请点链接~欢迎讨论拍砖~ .bind() .bind(eventType [, eventData], handler)    v1.0 给被选元素绑定一个事件处理程序.eventType为事件类型如"click","submit","mousedown"等; eventData为传给handler的数据(注意变量作用域); handler为事

使用Visual Studio在标准Web Part 部件中创建事件处理器

使用Visual Studio在标准Web Part 部件中创建Event Handler 为Web Part部件创建Events是生成Web Parts部件的核心部分.本文主要讲解如何使用Visual Studio在标准Web Part 部件中创建事件处理器. 1. 打开Visual Studio 创建新的空白SharePoint项目SPWebPartEvent,点击确定.部署为场解决方案. 2. 右击项目添加新Web部件SampleEventWebPart.点击确定. 3. 打开Sample