美文网首页
方法与事件

方法与事件

作者: 苦瓜_6 | 来源:发表于2018-08-29 21:02 被阅读0次

事件处理方法

vue绑定事件比较简单,但是有个地方需要注意一下下:
如果方法中定义了参数,需要在绑定事件的地方带上括号,如果忘了加括号,默认传原生事件对象event 。
可以试着把下面第一个button 的 add 后面的括号去掉试试~

  <div id="app">
    <p> {{count}}</p>
    <button v-on:click="add()">点我每次加1 </button>
    <!-- 这里由于方法中有参数,所以需要带上括号,如果忘了加括号,默认传原生事件对象event -->
    <button v-on:click="add(10)">点我每次加10 </button>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        count: 0
      },
      methods: {
         // 在 methods 对象中定义方法
        add : function (num){
          let temp = num || 1;
          this.count += temp
        }
      }
    })
  </script>

</body>

如果既想传参,又要访问原生DOM事件,可以用特殊变量 $event把它传入方法。

常见事件修饰符

.stop

阻止单击事件向上冒泡

  <div id="app">
    <div style="width: 100px;height: 100px;background: #ccc" 
         v-on:click="divClick">
      <button @click.stop="btnClick"> button </button>
      <!-- 没有加 stop 修饰符的时候,点击按钮,会先提示“button 被点击了”,再提示“div 被点击了” -->
    </div>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        count: 0
      },
      methods: {
       divClick: function(){
           alert('div 被点击了')
       },
        btnClick: function(){
           alert('button 被点击了') 
       },
      }
    })
  </script>
.self

只是作用在元素本身而非子元素的时候调用。
所以以下代码也可以达到与上例同样的效果:

 <div style="width: 100px;height: 100px;background: #ccc" 
         v-on:click.self="divClick"
.prevent

提交事件并且不重载页面。
每次提交表单都会重载页面,所以可以用.prevent修饰符阻止页面重载

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

或者

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

只执行一次的方法

  <div id="app">
    <button @click="onceMethod">执行很多次</button>
    <button @click.once="onceMethod">只执行一次</button>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let app = new Vue({
      el: '#app',
      data: {
        count: 0
      },
      methods: {
       onceMethod: function(){
         this.count++ 
         alert('总共点击了' + this.count + '次')
       }
      }
    })
  </script>

按键修饰符

Vue 为最常用的按键提供了别名
全部的按键别名:

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

相关文章

  • 方法与事件

    事件处理方法 vue绑定事件比较简单,但是有个地方需要注意一下下:如果方法中定义了参数,需要在绑定事件的地方带上括...

  • View 事件传递体系知识梳理(1) - 事件分发机制

    一、事件分发概述 1.1 事件分发的关键方法 对于ViewGroup来说,与事件分发相关的方法包括: 对于View...

  • CocosCreator 长按与双击脚本

    实现了一个简单的控件长按与双击事件的脚本,使用方法与cc.Button类似,选择需要的事件类型,指定事件回调方法即...

  • Vue 基础(2)

    方法与事件 当方法有参数,但@click指定方法时没有加括号@click="handle"会默认传原生事件对象(o...

  • 七、方法与事件

    当ViewModel 销毁时,所有的事件处理器都会自动删除,无须自己清理。 Vue 提供了一个特殊变量$event...

  • jquery中click事件绑定及移除的几种方法总结

    绑定事件与解绑事件是常用到的写法,这里总结了几种常见的绑定事件与解绑事件的方法。 绑定click事件 一:直接在h...

  • 事件分发机制整理

    事件分发机制 1、事件分发、拦截与消费 事件分发用到三个相关的方法,dispatchTouchEvent、onIn...

  • jQuery基础(三)—事件篇(慕课网)

    第一章 事件介绍 第二章 鼠标事件 2-1 jQuery鼠标事件之click与dbclick事件 click方法用...

  • jQuery基础(三)—事件篇(慕课网)

    第一章 事件介绍 第二章 鼠标事件 2-1 jQuery鼠标事件之click与dbclick事件 click方法用...

  • 事件分发

    更简单的学习Android事件分发 Android中与事件分发相关的方法主要包括dispatchTouchEven...

网友评论

      本文标题:方法与事件

      本文链接:https://www.haomeiwen.com/subject/uclhwftx.html