Vue事件处理器

也就是关于如何利用vue为元素绑定事件。
如下
利用v-on为元素绑定事件。之后紧跟事件,再之后就是一个方法名,或者直接是整个方法(简单的话)。

触发一个表达式

<div id="app">
  <button v-on:click="counter += 1">增加 1</button>
  <p>这个按钮被点击了 {{ counter }} 次。</p>
</div>

<script>
new Vue({
  el: '#app',
  data: {
    counter:0,
 
  }
})

结果没点击一次按钮p中的{{ counter }}代表的数字就加1.
再比如,注意格式,函数名字写在最前面,之后冒号,之后定义函数。函数里面的内容和js的语法是完全一样的。

触发一个方法函数

<div id="app">
  <button v-on:click="say('hi')">Say hi</button>
  <button v-on:click="say('what')">Say what</button>
</div>

<script>
new Vue({
  el: '#app',
  methods: {
    //在 `methods` 对象中定义方法
    say: function (xx) {
      alert(xx)
    }
  }
})

结果

image.png

如何获取event对象?

原生js是可以获取 event对象的,具体看这里
event对象 - 简书
event对象 - 简书
vue中event对象和原生js中的event对象是一样的,各种属性也是一样的,比如type用来获取事件类型,本例中是click。

<script>
var app = new Vue({
  el: '#app',
  data: {
    name: 'Vue.js'
  },
  // 在 `methods` 对象中定义方法
  methods: {
    greet: function (event) {
      // `this` 在方法里指当前 Vue 实例
      alert('Hello ' + this.name + '!')
      // `event` 是原生 DOM 事件
      if (event) {
          alert(event.type);//type获取事件类型
          alert(event.target);//获得激发事件的元素
          alert(event.clientX);//获取x轴坐标
      }
    }
  }
})
// 也可以用 JavaScript 直接调用方法
app.greet() // -> 'Hello Vue.js!'
</script>

参考

Vue.js 事件处理器 | 菜鸟教程

事件监听 - Vue.js 教程 - 极客学院Wiki

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容