文章目录
- 前言
- 一、v-on基本使用
- 二、使用举例
- 1.传参和不传参使用
- 2.$event占位代表事件对象
- 3.函数用箭头函数时this作用域
- 4.正常未用箭头函数的this指向(与未用箭头函数作比较)
- 总结
前言
v-on:事件绑定
一、v-on基本使用
- 格式:
<标签 v-on:事件=“函数名”></标签>
或<标签 @事件=“函数名”></标签>
- 事件的回调需要配置在methods对象中,最终会在Vue实例上。
- methods中配置的函数,不要用箭头函数!否则this指向的就不是Vue实例了。指向的就是Vue实例外层最近作用域(window)
- methods中配置的函数,都是被Vue所管理的函数,this指向的是Vue实例对象或组件实例对象。
- @click="函数名($event)"中 $event是占位,代表事件event对象。
二、使用举例
1.传参和不传参使用
代码如下(示例):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id="root">
<!-- <button v-on:click="show">点击我(传参)</button> -->
<button @click="show1()">点击我(传参)</button>
<button @click="show2(123)">点击我(不传参)</button>
</div>
<script>
var vm = new Vue({
el: "#root",
methods: {
show1() {
alert("你好!");
},
show2(num) {
alert("你好!!" + num);
}
}
})
console.log(vm);
</script>
</body>
</html>
2.$event占位代表事件对象
代码如下(示例):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id="root">
<button @click="show(123,$event)">点击我</button>
</div>
<script>
var vm = new Vue({
el: "#root",
methods: {
show(num, e) {
console.log(num);
console.log(e);
}
}
})
console.log(vm);
</script>
</body>
</html>
3.函数用箭头函数时this作用域
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id="root">
<button @click="show">点击我</button>
</div>
<script>
var vm = new Vue({
el: "#root",
methods: {
show: () => {
console.log(this);
}
}
})
console.log(vm);
</script>
</body>
</html>
4.正常未用箭头函数的this指向(与未用箭头函数作比较)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id="root">
<button @click="show">点击我</button>
</div>
<script>
var vm = new Vue({
el: "#root",
methods: {
show() {
console.log(this);
}
}
})
console.log(vm);
</script>
</body>
</html>
总结
以上就是事件处理的讲解。