Vue
中的事件处理
知识点:
- 使用
v-on:xxx
或者@xxx
绑定事件,其中xxx
是事件名; - 事件的回调需要配置在
methods
对象中,最终会在vm
上; methods
中配置的函数,不要用箭头函数!否则this
就不是vue
实例了;methods
中配置的函数,都是被Vue
所管理的函数,this
的指向是vm
或者是组件实例对象;@click='demo'
和@click='demo($event)'
效果一致,但是后者可以传递参数,还可以通过event
(点击或者别的什么事件)去拿到按钮或者别的元素的属性;
需求:写一个按钮去绑定事件实现在点击后弹窗。
<body>
<div id="root">
<h2>欢迎来到{{name}}学习</h2>
<button v-on:click="showInfo1">点我提示1</button>
<button @click="showInfo2(66,$event)">点我提示2(简写)</button>
</div>
<script type="text/javascript">
const vm = new Vue({
el: "#root",
data() {
return {
name: "郑州大学"
}
},
methods: {
showInfo1(event) {
//可以拿到事件,从而拿到这个按钮的属性等等
console.log(event.target.innerText)
alert("同学你好!")
},
showInfo2(number, event2) {
//可以拿到事件,从而拿到这个按钮的属性等等
console.log(event2.target.innerText)
alert("同学你好!!" + number)
},
}
})
</script>
</body>
ps
:疑惑?通过这种方式那么怎么灵活的传递参数而不是直接写死。