v-on
v-on
用于事件绑定,v-on:
冒号后面可以加任意的原生js事件如click
/mouseover
/dblclick
等,v-on:
的简写是@
,如v-on:click='show()'
可以简写为@click='show()'
除了方法名外,也可以直接写脚本语句如@click="alert(1)"
点击添加列表条目
1 2 3 4 5 6
| <div id="app"> <ul> <li v-for="item in arr">{{item}}</li> </ul> <button @click="add()">add One</button> </div>
|
点击时的add
方法必须写在methods
里
1 2 3 4 5 6 7 8 9 10 11
| var app = new Vue({ el: "#app", data: { arr: ['apple', 'pear', 'grape'] }, methods: { add: function () { this.arr.push('strawberry') } } })
|
除了鼠标事件之外,也可用于键盘事件如keydown
/keyup
,在键盘事件的基础上可以添加keyCode
来绑定确定的键盘事件,常用的如up
,down
,left
,right
,enter
,delete
回车添加条目,delete键删除条目
1
| <input type="text" @keydown.enter="add()" @keydown.delete="minus()">add One</input>
|
1 2 3 4 5 6 7 8
| methods: { add: function () { this.arr.push('strawberry') }, minus:function () { this.arr.pop(); } }
|
确定键入的keyCode
1 2
| <input type="text" @keydown="showCode($event)"> <p>你键入的keyCode 是{{myKeyCode}}</p>
|
1 2 3 4 5 6
| data: {myKeyCode:''}, methods:{ showCode:function ($event) { this.myKeyCode=$event.keyCode; } }
|
$event
可以写成event
,但写e
就会报错
阻止事件冒泡
用修饰符.stop
1 2 3
| <div id="app" @click="show($event)"> <div @click.stop="show($event)">click</div> </div>
|
1 2 3 4 5 6
| methods:{ show:function ($event) { alert($event.clientY); } }
|
也可以使用$event.cancelBubble=true;
来阻止事件冒泡
阻止默认行为
用修饰符.prevent
1
| <div @contextmenu.prevent="show($event)">右键获取目前clientX</div>
|
1 2 3 4
| show:function ($event) { alert($event.clientX); }
|
也可以使用$event.preventDefault()
来阻止如出现右键菜单等这样的默认事件