Vue.js 第十节:事件处理 复现

事件处理

监听事件

可以用v-on监听DOM事件,并在触发时运行一些Javascript代码。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
        <script src="vue.js"></script>
    </head>
    <body>
        <div id='example'>
			<button v-on:click="counter += 1">数值:{{counter}}</button>
			<!-- 可以将JS代码直接写在v-on中,在下边代码申明counter默认值 -->
        </div>
        <script type="text/javascript">  
            var vm = new Vue({
                el:'#example', 
                data: {
					counter:0
					},
            }) 
        </script>
    </body>
</html>

但平时的时间处理中代码较为复杂,直接放在v-on指令中时不可行的,所以可以让v-on接受一个需要调用的函数名称。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
        <script src="vue.js"></script>
    </head>
    <body>
        <div id='example'>
			<button v-on:click="test('hello')">test</button>
			<!-- 在初始化Vue对象中methords属性里定义test函数 -->
        </div>
        <script type="text/javascript">  
            var vm = new Vue({
                el:'#example', 
                data: {
					counter:0
					},
				methods: {
					// 声明函数以及函数体
					test:function(str){
						alert('xixi!');
						alert(this.counter);//其可调用data中属性值.
						alert(str);//可接受形参
					}
				}
            }) 
        </script>
    </body>
</html>

有时也需要在内联语句中访问原始DOM事件。可以用特殊变量 $event 把它传入方法:

    <body>
        <div id='example'>
			<button v-on:click="test('hello',$event)">test</button>
			<!-- 在此添加event时间 -->
        </div>
        <script type="text/javascript">  
            var vm = new Vue({
                el:'#example', 
                data: {
					counter:0
					},
				methods: {
					// 声明函数以及函数体
					test:function(str,e){
						alert('xixi!');
						alert(this.counter);//其可调用data中属性值.
						alert(str);//可接受形参
						console.log(e);//可以在控制台输出该事件
					}
				}
            }) 
        </script>
    </body>

控制台即可输出$event事件的相关信息
在这里插入图片描述

事件修饰符

具体修饰符可在vue,js官网中的文档查阅

v-on指令可以绑定html元素拥有的所有事件。

发布了10 篇原创文章 · 获赞 0 · 访问量 163

猜你喜欢

转载自blog.csdn.net/yjj510818155/article/details/104740213