事件绑定指令
一、书写
<标签 v-on:事件=“事件名”></标签>
<标签 @事件=“事件名”></标签>//@可以代替v-on:
二、说到事件绑定,就不得不说一下vue中的方法仓库methods,如下,在vue实例中:
methods:{ // 定义方法,方法仓库
show:function(){
console.log('show方法');//例子
}
}
三、费话不多说了,如果还有不明白的,可以留言,下面正式讲解
<button v-on:click="show()">按钮1</button>
上述button按钮绑定的是clik事件,点击后的效果
一个标签也可以绑定多个事件:如:
上述我书写方法的书写格式,细心的小伙伴可能已经发现了,就是方法后面有的加了()有的没加。在这边解释一下,效果是一样的
同时绑定多个事件,还有下面书写方法
<button v-on="{mouserover:show2,mouserout:show3}">多个事件绑定书写1</button>
一个事件绑定多个方法
<button v-on:click="show2(),show3()">多个事件绑定书写1</button>
<button @click="[show2(),show3()]">多个事件绑定书写2</button>
行内表达式
<body>
<div id="app">
<button v-on:click="show1">show1</button>
<button @mouseover="show2()" v-on:mouseout="show3()">多个事件的绑定</button>
<p>{{ msg }}</p>
<button @click="msg='change'">改变P标签的msg值</button>
</div>
</body>
<script>
let vm =new Vue({
el:'#app',
data:{
msg:'hello'
},
methods: {
show1(){
alert("我是show1方法")
},
show2(){
console.log('我是show2')
},
show3(){
console.log('我是show3')
}
},
});
console.log(vm);
</script>
点击之后
事件绑定的参数
<!--
事件绑定时方法的参数
-->
<!-- 将普通值作为实参 -->
<button @click="write('aaa')">传参1</button>
<!-- 将数据仓库中的变量作为实参 -->
<button @click="write(msg)">传参2</button>
<!-- 将this作为实参,此时的this指向window对象,与原生js有所不同 -->
<button @click="write(this)">传参3</button>
<!-- 将$event作为实参,表示事件对象,包含事件相关的信息,等同于原生js中的event -->
<button @click="write($event)">传参4</button>
<input type="text" @input="write($event.target.value)">
动态绑定事件
<!-- 动态事件缩写 (2.6.0+):使用[]表示变量 -->
<button @[event]="show">动态事件绑定</button>
<button @click="event='mouseout'">改变事件</button>