本文介绍 Vue.js 中 v-on 指令用于绑定事件监听器的基本用法。通过两个具体代码示例,演示如何响应鼠标点击并动态操作 DOM 元素,包括添加新元素和关闭组件逻辑。
Vue.js v-on 事件绑定基础
本文详细介绍 Vue.js 中事件监听器的绑定方法。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>www.jb51.net 绑定事件监听器</title>
<!-- Vue.js -->
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
</head>
<body>
<div id="app">
<p v-if="show">这是一段文本</p>
<buttton v-on:click="handleClose">点击隐藏</buttton>
</div>
</body>
</html>
<script>
//当数据show的值为true时,p元素会被插入,为false时会被移除
var myData = {
show:true
};
var app = new Vue({
el:'#app',
data:myData,
//在普通元素上,v-on可以监听原生的DOM事件,除了click外,还有dbclick、keyup、mousemove等。表达式可以是一个方法名,这些方法都写在vue实例的methods属性内,并且是函数的形式,函数内的this指向的是当前vue实例本身,因此可以直接使用this.xxx的形式来访问或者修改数据,如实例中的this.show = false;把数据show修改为了false,所以点击按钮时,文本p元素就被移除了
methods:{
handleClose:function () {
// this.show = false
//在handleClose方法内,直接通过close()调用了close函数。在示例中是多此一举的,只是用于演示它的用法
this.close()
},
close:function () {
this.show = false
}
}
})
</script>
您可以使用本站提供的 HTML/CSS/JS 在线运行测试工具进行验证:http://tools.jb51.net/code/HtmlJsRun,测试结果如下所示。

动态元素添加示例
接下来展示另一个相关示例。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>vue</title>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
</head>
<body>
<div id="test">{{msg}}
<p v-for="val in arr">
{{val.a}}
</p>
<a href="javascript:void(0)" rel="external nofollow" v-on:click="tap">点我</a>
</div>
</body>
</html>
<script>
// window.onload= function(){
var app2 = new Vue ({
el:"#test",
data:{
msg:'润元装饰',
msg1:"家装"+new Date(),
msg2:'lianxi',
show:true,
arr:[
{a:'bb'},
{a:'cc'}
]
},
methods:{
tap : function(){
this.arr.unshift({a:'new'})
}
}
})
// }
</script>
该示例演示了如何响应鼠标点击事件来自动增加页面元素。感兴趣的用户可以使用 HTML/CSS/JS 在线运行测试工具:http://tools.jb51.net/code/HtmlJsRun 查看实际效果。
希望本文的内容能对您的 Vue.js 程序设计提供有益参考。