003_Vue事件
1. Vue如何处理事件?
1.1. v-on指令用法
<input type='button' v-on:click='num++' />1.2. v-on简写形式
<input type='button' @click='num++' />2. 事件函数的调用方式
2.1. 直接绑定函数名称
<input type='button' @:click='handle1' />2.2. 调用函数
<input type='button' @:click='handle1()' />3. 事件函数参数传递
3.1. 普通参数和事件对象
<input type='button' @:click='handle1($event)' /> <input type='button' @:click='handle2(500, $event)' />3.2. 如果事件直接绑定函数名称, 那么默认会传递事件对象作为事件函数的第一个参数。
3.3. 如果事件绑定函数调用, 那么事件对象必须作为最后一个参数传递, 并且事件对象的名称必须是$event。
4. 点击事件案例
4.1. 代码
<!DOCTYPE html> <html><head><meta charset="utf-8" /><title>点击事件</title></head><body><div id="app"><div>{{num}}</div><div><button v-on:click="++num">点击1</button><button @click="++num">点击2</button><!-- 1. 如果事件直接绑定函数名称, 那么默认会传递事件对象作为事件函数的第一个参数。 --><!-- 2. 如果事件绑定函数调用, 那么事件对象必须作为最后一个参数传递, 并且事件对象的名称必须是$event。 --><button @click="handle1">点击3</button><button @click="handle1($event)">点击4</button><button @click="handle2(500, $event)">点击5</button></div></div><script type="text/javascript" src="vue.min.js"></script><script type="text/javascript">var vm = new Vue({el: "#app",data: {num: 0,},methods: {handle1: function(event){++this.num;console.log(event.target.innerHTML);},handle2: function(p, event){++this.num;this.num += p;console.log(event.target.innerHTML);}}});</script></body> </html>4.2. 运行效果
4.3. 点击1
4.4. 点击2
4.5. 点击3
4.6. 点击4
4.7. 点击5
9. 事件修饰符-阻止冒泡
9.1. .stop阻止冒泡。
9.2. 代码
<!DOCTYPE html> <html><head><meta charset="utf-8" /><title>事件-阻止冒泡.stop</title></head><body><div id="app"><div>{{num}}</div><div @click="handle1"><button @click.stop="handle2">点击1</button></div></div><script type="text/javascript" src="vue.min.js"></script><script type="text/javascript">var vm = new Vue({el: "#app",data: {num: 0,},methods: {handle1: function(event){++this.num;console.log('handle1: ' + event.target.innerHTML);},handle2: function(event){console.log('handle2: ' + event.target.innerHTML);// js默认的阻止冒泡函数// event.stopPropagation();}}});</script></body> </html>9.3. 运行效果
10. 事件修饰符-阻止默认行为
10.1. .prevent阻止默认行为
10.2. 代码
<!DOCTYPE html> <html><head><meta charset="utf-8" /><title>事件-阻止默认行为.prevent</title></head><body><div id="app"><a href="http://www.baidu.com" @click.prevent="handle1">百度</a></div><script type="text/javascript" src="vue.min.js"></script><script type="text/javascript">var vm = new Vue({el: "#app",data: {},methods: {handle1: function(event){// js默认的阻止默认行为函数// event.preventDefault();}}});</script></body> </html>10.3. 运行效果, 点击超链接不跳转
总结
- 上一篇: 002_Vue指令
- 下一篇: 004_Vue按键修饰符