v-on
想要实现点击按钮后执行事件
使用v-on:click
绑定事件,后面跟事件名
<div id="root">
<h2>欢迎来到{{name}}学习</h2>
<button v-on:click="showInfo1">点我提示信息</button>
</div>
然后在Vue实例中写下methods方法,本例中弹出信息框
<script type="text/javascript">
new Vue({
el:"#root",
data:{
name:'特曼博客'
},
methods:{
showInfo1(event){
alert("你好")
//console.log(this) //此处的this是vm
}
}
})
</script>
简写
v-on:click
的简写形式是@click
<button @click="showInfo1">点我提示信息</button>
传参
我们也可以在执行事件的时候传入一个参数
在事件名后跟括号
<body>
<div id="root">
<h2>欢迎来到{{name}}学习</h2>
<button @click="showInfo2(66,$event)">点我提示信息2(传参)</button> <!--简写形式-->
</div>
</body>
<script type="text/javascript">
new Vue({
el:"#root",
data:{
name:'特曼博客'
},
methods:{
showInfo2(number,event){
console.log(number)
alert("你好!!")
}
}
})
</script>
所有代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>07事件处理</title>
<script type="text/javascript" src="../js/vue.js"> </script><!-- 引入Vue-->
</head>
<body>
<div id="root">
<h2>欢迎来到{{name}}学习</h2>
<button v-on:click="showInfo1">点我提示信息(不传参)</button>
<button @click="showInfo2(66,$event)">点我提示信息2(传参)</button> <!--简写形式-->
</div>
</body>
<script type="text/javascript">
new Vue({
el:"#root",
data:{
name:'特曼博客'
},
methods:{
showInfo1(event){
alert("你好")
console.log(this) //此处的this是vm
},
showInfo2(number,event){
console.log(number)
alert("你好!!")
}
}
})
</script>
</html>
总结
事件的基本使用:
- 使用v-on:xxx 或 @xxx 绑定事件 其中xxx是事件名
- 事件的回调需要配置在methods对象中,最终会在vm上
- methods中配置的函数,不要用箭头函数,否则this就不是vm了
- methods中配置的函数,都是被vue所管理的函数,this的指向是vm 或组件实例对象
- @click="demo" 和 @click="demo($event)" 效果一致,但后者可以传参